CH22_结构体类型


本章目标

  • 掌握结构体的运用

结构体

概述

在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。

语法

1
2
3
4
5
6
7
8
struct 结构体名称
{
//字段
//属性
//构造函数
//方法
//事件
};

特点

  • 结构可带有方法、字段、索引、属性、运算符方法和事件。
  • 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义无参构造函数。无参构造函数(默认)是自动定义的,且不能被改变。
  • 与类不同,结构不能继承其他的结构或类。
  • 结构不能作为其他结构或类的基础结构。
  • 结构可实现一个或多个接口。
  • 结构成员不能指定为 abstract、virtual 或 protected。
  • 当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
  • 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

类和结构的区别

  • 类是引用类型,结构是值类型。
  • 结构不支持继承。
  • 结构不能声明默认的构造函数。

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FirstProject
{
struct Book
{
public string Name;// { get; set; }

public string Author;// { get; set; }

public double Price;// { get; set; }


public Book(string name,string Author,double price)
{
this.Name = name;
this.Author = Author;
this.Price = price;
}

public void ShowInfo()
{
Console.WriteLine("书名:{0},作者:{1},价格:{2}",this.Name,this.Author,this.Price);
}
}

class Program
{
static void Main(string[] args)
{
Book b1 = new Book("十万个为什么","张三",120);

Book b2;
b2.Name = "三体";
b2.Author = "刘慈欣";
b2.Price = 125;

b1.ShowInfo();
b2.ShowInfo();


Console.ReadKey();
}
}

}

课后作业

1.略