----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1、结构是一种值类型,并且不需要堆分配。结构的实例化可以不使用new运算符。如果声明一个10000个Point对象组成的数组,为了引用每个对象,则需分配更多内存;这种情况下,使用结构可以节约资源。
定义:
public struct onePerson { public string name; public string sex; public int age; }
使用:
onePerson person1; person1.name = "李明"; person1.sex = "男"; person1.age = 32;
2、结构的特征:
在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。结构类型永远不是抽象的,并且始终是隐式密封的,因此在结构声明中不允许使用abstract和sealed修饰符。
3、结构不能声明默认构造函数(没有参数的构造函数)或析构函数,但可以声明带参数的构造函数,也可以定义成员函数
示例:
public struct onePerson { public string name; public string sex; public int age; public void opp() { //内容 } public onePerson(string Name,string Sex,int Age) { name = Name; sex = Sex; age = Age; }
上述代码opp()为成员函数,onePerson()为自定义有参构造函数。
4、结构可以实现接口,但不能从另一个结构或类继承,而且不能作为一个类的基,所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
5、结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。
int age1; age1 = person1.age;
此时是将person1里age的值复制给age1。
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------