struct Point{
int x;
int y;
}
结构体的构造函数
每个结构体都有一个默认的构造函数,会把结构体的所有字段初始化成0,false,null。
程序员不可以提供无参的构造函数。
程序员可以为结构体提供额外的构造函数,但是在构造函数中必须对所有字段赋值。
结构体的标准使用方法
struct的所有字段都在栈中,使用结构体的任何成员前,必须先初始化结构体的全部字段!
(1)定义时使用默认构造函数进行初始化
Point p = new Point();
栈中x,y;然后new将其赋值为0;
(2)Point p = new Point(1,2);
栈中x,y,然后new将其赋值为1,2;
解析:
Point p,已经在栈分配内存;
new Point(),既不在stack分配内存,也不在heap分配内存,仅仅表示为stack中的结构体字段赋值(默认值);
(3)不使用new,先定义,然后逐个初始化其字段
Point p;
p.x = 1;
p.y = 2;
结构体不能继承其他结构体,也不能被其他结构体继承
原因:结构体都默认继承了system.ValueType,C#不支持多继承
结构体可以继承接口。