/*定义Point 里面就只有2个属性 但是我们实际上根本不需要类的全部功能 */
class Point
{
public int x;
public int y;
}
这样写就方便多了
struct Point
{
public int x;
public int y;
public int X
{
get
{
return this.x;
}
set
{
this.x = value;
}
}
public Point(int x, int y)
{
//必须把结构中的变量初始化
this.x = x;
this.y = y;
}
};
Point point1 = new Point(10,20);
//第二种方式
Point point2;
point2.x = 10;
point2.y = 20;
注意事项
1.结构体没有无参数构造方法 必须得提供一个有参数的构造函数初始化字段
2.使用new关键字创建结构对象,并且调用构造方法 但是结构也可以不使用new关键字
如果不使用new关键字 则结构体的字段都是保持未初始化 初始值为0
3.结构不能继承结构或继承类,所有结构继承System.ValueType[隐士继承]后者继承System.Object
4.可以实现接口
5.声明的时候不能初始化结构字段
6.结构是值类型 不是引用类型 例如A复制B结构 只是复制数据 没有复制引用
如果当做参数传递最好前面加引用符号ref