在使用类的一个备选方法是使用结构体,结构体是轻量级的用户定义类型,它非常类似于类,但是有一些不同之处:
结构体不支持继承或析构函数;
结构体是值类型(类是引用类型);
结构体不可以声明默认构造函数。
结构体隐式地派生于Object,并且是值类型(与类不同),意味着在通过结构体创建对象并将该对象赋给另一个变量时,该变量将包含结构体对象的副本。
下面是Coordinate结构体的定义
public struct Coordinate
{
public double latitude { get; set; }
public double longitude { get; set; }
}
根据需要也可以向结构体中添加构造方法,代码如下
public struct Coordinate
{
public double latitude { get; set; }
public double longitude { get; set; }
public Coordinate(double lat, double lng)
{
latitude = lat;
longitude = lng;
}
}
注意在尝试编译该应用程序时,编辑器会发送如下错误
这种限制只应用于结构体(类不存在这种问题),为了解决这个该问题,需调用结构体的默认构造函数,如下所示:
public struct Coordinate
{
public double latitude { get; set; }
public double longitude { get; set; }
public Coordinate(double lat, double lng):this()
{
latitude = lat;
longitude = lng;
}
}
结构总是派生自System.ValueType,它们还可以派生自任意多个接口;
类总是派生自用户选择的另一个类,它们还可以派生在任意多个接口