Nullable是從.NET Framework 2.0加入設計
目的是讓value type 能夠指定null
以前的int,是不允許有null的。不指定值的話預設是0
而Nullable<int>
則可以指定null,寫法有兩種如下
Nullable<int> x1 = null;
int? x2 = null;
當屬性不一定要顯示,或是非必填欄位時,可以考慮宣告Nullable
不用傳入Nullable參數,請使用override
//不好的
public class Foo{
public Foo(string name, int? id);
}
public class Foo{
public Foo(string name, int id);
public Foo(string name);
}
避免使用Nullable<bool>
。bool只允許有兩種狀態:true or false。不要隨便給他第三種狀態(null)
避免用System.DBNull取代Nullable<T>
Object這一章節提到ovreride某些方法實的注意事項
包括:Equals, GetHashCode, ToString
Equals, GetHashCode請參考 使用原則(5) - IComparable, IEquatable
以下介紹ToString注意事項
有特殊內容要輸出時,override ToString
確保ToString輸出的內容必須是剪短的
用友善容易辨識的名稱取代可讀性不好的ID
有特殊格式時,可以override ToString(string format),或是實作IFormattable
不要回傳空串或null
避免在ToString丟出Exception