1.概述结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point、Rectangle、Color的对象。基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有提到。结构具有以下特点:结构可以实现接口。结构可以声明带参数的构造函数。结构不能声 ...
1.概述
结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point、Rectangle、Color的对象。基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有提到。
结构具有以下特点:
- 结构可以实现接口。
结构可以声明带参数的构造函数。
结构不能声明默认构造函数(没有参数的构造函数)或析构函数。
结构是值类型,而类是引用类型。
实例化结构体时可以不使用new运算符。
结构类型是不可抽象、隐式密封的,故不能使用abstract和sealed修饰符。
在结构中声明字段时,字段无法被初始化,除非字段加上关键字const或static。
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。 不过结构仍然可以使用ref和out参数引用的方式传值给函数成员。另,在使用值类型的集合(如 Dictionary<get='_blank'>string, myStruct>)时,请务必记住这一点。
2.结构体声明
//结构体的声明 public struct Rectangle { public double x,y; public static double z = 5;//结构体里的字段只有加上static或者const关键字才能被初始化 //结构体里的构造函数必须是带参数的 public Rectangle(double x1, double y1) { x= x1; y= y1; Console.WriteLine(x.ToString()+" "+y.ToString()); } } class Prgram1 { static void Main(string[] args) { //结构体的初始化 Rectangle rect1; Rectangle rect2 = new Rectangle(); Rectangle rect3 = new Rectangle(5, 5); //输出各个的值 Console.Write("rect1:"); Console.WriteLine("x = {0}, y = {1}", rect1.x, rect1.y); Console.Write("rect2:"); Console.WriteLine("x = {0}, y = {1}", rect2.x, rect2.y); Console.Write("rect3:"); Console.WriteLine("x = {0}, y = {1}", rect3.x, rect3.y); } } /* 输出: rect1: x = 0, y = 0 rect2: x = 0, y = 0 rect3: x = 5, y = 5 */
原标题:C#学习笔记之结构体
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。