iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 29
0
自我挑戰組

Framework 設計原則系列 第 29

使用原則(6) - Nullable , Object

Nullable

Nullable是從.NET Framework 2.0加入設計

目的是讓value type 能夠指定null

以前的int,是不允許有null的。不指定值的話預設是0

Nullable<int> 則可以指定null,寫法有兩種如下

Nullable<int> x1 = null;

int? x2 = null;
  1. 當屬性不一定要顯示,或是非必填欄位時,可以考慮宣告Nullable

  2. 不用傳入Nullable參數,請使用override

//不好的
public class Foo{
    public Foo(string name, int? id);
}

public class Foo{
    public Foo(string name, int id);
    public Foo(string name);
}
  1. 避免使用Nullable<bool>。bool只允許有兩種狀態:true or false。不要隨便給他第三種狀態(null)

  2. 避免用System.DBNull取代Nullable<T>

Object

Object這一章節提到ovreride某些方法實的注意事項

包括:Equals, GetHashCode, ToString

Equals, GetHashCode請參考 使用原則(5) - IComparable, IEquatable

以下介紹ToString注意事項

  1. 有特殊內容要輸出時,override ToString

  2. 確保ToString輸出的內容必須是剪短的

  3. 用友善容易辨識的名稱取代可讀性不好的ID

  4. 有特殊格式時,可以override ToString(string format),或是實作IFormattable

  5. 不要回傳空串或null

  6. 避免在ToString丟出Exception


上一篇
使用原則(5) - IComparable<T>, IEquatable<T>
下一篇
使用原則(7) - Serialization, System.xml
系列文
Framework 設計原則30

1 則留言

我要留言

立即登入留言