2013-02-18 35 views
2
public class TestClass 
{ 
    const MyType SOMECONSTANT = null; 

    protected string TestString { get; set; }  
} 

public class MyType 
{ 
    protected string FieldA { get; set; } 
} 

上面的代碼是有效的,它編譯。爲什麼C#允許引用類型constnull?我怎樣才能使用這個SOMECONSTANT,因爲這總是null用空值聲明用戶定義類型常量有什麼用?

+0

我想,因爲null是一個有效的值,可以分配給引用類型和可爲空的值類型。 – 2013-02-18 22:13:40

回答

2

它可以用作佔位符,它將在開發週期的稍後階段持有指定對象的實例。通常使用常量來比較。採取這一想法,假設程序員B被去實現和實例化對象PERFECT_TYPE後,你可以這樣說

const MyType PERFECT_TYPE = null; 

後來我可能有

if (myInstance.Equals(TestClass.PERFECT_TYPE)) { /*do stuff*/ } 

雖然在這種情況下,我會點你需要執行MyType.Equals(),但你明白了。像這樣的東西在存根中並不少見,特別是在敏捷開發中。我會說一個存根將更可能是一個屬性,而不是一個常數,但是,每個工具的目的...

相關問題