在使用類的一個備選方法是使用結構體,結構體是輕量級的用戶定義類型,它非常類似於類,但是有一些不同之處:
結構體不支持繼承或析構函數;
結構體是值類型(類是引用類型);
結構體不可以聲明默認構造函數。
結構體隱式地派生於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;
}
}
摘自: Mars的專欄