Martin Fowler的重構討論創建空的對象,以避免大量的如何C#創建一個空對象
if (myObject == null)
測試。 什麼是正確的方法來做到這一點?我的嘗試違反了「構造函數中的虛擬成員調用」規則。 這裏是我的嘗試吧:
public class Animal
{
public virtual string Name { get; set; }
public virtual string Species { get; set; }
public virtual bool IsNull
{
get { return false; }
}
}
public sealed class NullAnimal : Animal
{
public override string Name
{
get{ return "NULL"; }
set { }
}
public override string Species
{
get { return "NULL"; }
set { }
}
public virtual bool IsNull
{
get { return true; }
}
}
你試圖解決什麼問題?空引用究竟有什麼問題呢? – spoulson 2009-07-24 15:27:02
http://www.refactoring.com/catalog/introduceNullObject.html – Sisiutl 2009-07-24 15:31:22
您的NullAnimal類中的IsNull屬性應該是重寫,而不是虛擬。 – TGnat 2009-07-24 15:34:55