在 C# 中,结构是值类型数据结构。
它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构。
注意:结构体可以有方法、域、属性、索引器、操作方法、事件。
结构体可以定义构造函数(实例和静态构造函数),但是不能构造析构函数。(虽然说可以定义构造函数,但是不能定义无参构造函数,因为结构体的无参构造函数是自动定义的且不能被改变,默认的无参构造函数会一直存在,默认的无参构造函数不会因为定义了有参构造函数就消失,这里说的都是实例构造函数)
结构体不能继承其他结构体或者其他类。
结构体不能用于作为其他结构体或者类的基类。
结构体类型总是隐式密封的,不能指定为密封的和抽象的,因此在定义结构时不能使用sealed和abstract关键字。
结构体的函数成员不能声明为abstract和virtual,但是可以使用override关键字,用以覆写它的基类System.ValueType中的方法。
结构体可以实现一个或多个接口。
使用New运算符创建结构体对象时,将创建该结构体对象,并且调用适当的构造函数。
如果不使用New运算符创建结构体对象,那么在初始化所有字段前,字段将保持未赋值状态,且对象不可用。
声明结构体
访问修饰符 :结构体成员不能被指定为抽象的、虚拟的、或者保护的对象,因此结构体的成员不能使用如下访问修饰符:abstract、virtual和protected
结构体的作用
1.结构是值类型,在分配内存的时候,速度非常快,因为它们将内联或者保存到栈中,在结构超出作用域被删除时速度也很快
2.结构体可以把功能相同的数据组织起来,存在一起,用是时候方便,而且在调用函数时,若传递参数较多,传一个结构体相对而言简单一些,很多系统自带的函数必须用结构体。
3.结构体在使用时可以和枚举一起使用。
结构体的用法:
例:声明结构体,记录图书的信息
调用
结果: