如何选择网站建设,创网网络,济南高新区 网站建设,网页制作超链接怎么做属性和字段初始化语句
在声明结构体时#xff0c;不允许使用实例属性和字段初始化语句#xff0c;如下所示。
struct Simple
{public int x0; //编译错误public int y10; //编译错误public int prop1{get;set;}5;//编译错误
}但是#xff0c;结构体的静态属性和静态字…属性和字段初始化语句
在声明结构体时不允许使用实例属性和字段初始化语句如下所示。
struct Simple
{public int x0; //编译错误public int y10; //编译错误public int prop1{get;set;}5;//编译错误
}但是结构体的静态属性和静态字段都可以在声明结构体时进行初始化即使结构体本身不 是静态的。
结构是密封的
结构总是隐式密封的因此不能从它们派生其他结构。 由于结构不支持继承个别类成员修饰符用在结构成员上将没有意义因此不能在结构成员 声明中使用。不能用于结构的修饰符如下
protectedprotected internalabstractsealedvirtual
结构本身派生自System.ValueType,而System.ValueType派生自object。 两个可以用于结构成员并与继承相关的关键字是new和override修饰符当创建一个和基类 System.ValueType的成员同名的成员时可使用它们。所有结构都派生自system.ValueType。
装箱和拆箱
如同其他值类型数据如果想将一个结构实例作为引用类型对象必须创建装箱boxing 的副本。装箱的过程就是制作值类型变量的引用类型副本。装箱和拆箱unboxing将在第17章 详细阐述。
结构作为返回值和参数
结构可以用作返回值和参数。
返回值当结构作为返回值时将创建它的副本并从函数成员返回。值参数当结构被用作值参数时将创建实参结构的副本。该副本用于方法的执行中。ref和out参数如果把一个结构用作ref或out参数传人方法的是该结构的一个引用 这样就可以修改其数据成员。
关于结构的更多内容
对结构进行分配的开销比创建类实例小所以使用结构代替类有时可以提高性能但要注意 装箱和拆箱的高昂代价。 关于结构需要知道的最后一些事情如下。
预定义简单类型int、short、long等等尽管在.NET和C#中被视为原始类型但 它们实际上在NET中都实现为结构可以使用与声明分部类相同的方法声明分部结构如第7章所述。 结构和类一样可以实现接口。接口将在第16章阐述。