.Net系統默認所有的對象初始化時都為0。這並沒有提供一個方法來預防其他 程序員創建的值類型數據的實例在初始化是都是0。請讓你的數據類型默認值也 是0。
一個特殊情況是在枚舉類型數據中。決不要創建一個不包括0在內 的枚舉類型。所有的枚舉類型都是從System.ValueType派生的。枚舉類型的值是 從0開始的,但你可以改變這一行為:
public enum Planet
{
// Explicitly assign values.
// Default starts at 0 otherwise.
Mercury = 1,
Venus = 2,
Earth = 3,
Mars = 4,
Jupiter = 5,
Saturn = 6,
Neptune = 7,
Uranus = 8,
Pluto = 9
}
Planet sphere = new Planet();
sphere此時的值就是0,而這並不是一個有效的值。枚 舉類型的取值限制在所有列舉的值中,任何依懶這一(普通)事實的代碼都將無法 工作。當你為你的枚舉類型創建你自己的取值時,請確保0是當中的一個。如果 你的枚舉類型采用的是以位(bit)模式,把0定義為其它屬性不存在時的取值。
按照現在的情況,你迫使用戶必須精確的初始化值:
Planet sphere = Planet.Mars;
這將使包含 (Planet)這一類型的其它類型很難創建:
public struct ObservationData
{
Planet _whichPlanet; //what am I looking at?
Double _magnitude; // perceived brightness.
}
創建一個新ObservationData實例的用戶會創建一個不合法的 Planet成員:
ObservationData d = new ObservationData ();