2012-03-07 93 views
12

如何在C#中創建可空(?)類?像:創建可空類

public class Hello1 { 
    public int Property1 { get; set; } 
} 

public class Hello2 { 
Public Hello1? Property2 { get; set; } //Hello1 should work when it has "?" 
} 

我想讓Hello1類採取形式「Hello1?」如果需要的話。

+1

這是一個重複http://stackoverflow.com/questions/3132667/nullable-class – evasilchenko 2012-03-07 21:58:43

回答

31

您不需要爲引用類型創建可爲空的類型。他們已經是空的了。你只需要爲像int,布爾,小數等值類型做這個...

+0

好吧我混淆了KeyValuePair上課。這是一個結構,所以它需要「?」。我試圖創造同樣的事情。這說得通。 – iefpw 2012-03-07 22:12:33

8

你不需要;參考類型可能已經是null。至於結構,只需追加一個?工作。因此,請照常刪除?,並使用== null檢查null

0

Hello1已經可以爲空。您的財產上不需要?

編輯 - 我懷疑你可能會試圖設置Hello1.Property1爲空,而你希望做Hello1可空將允許。它不會。如果你這樣做,你需要將Property1標記爲空。

1

所有的類都可以爲空。可爲空數值類型不能爲空

0

Hello1已經是引用類型,所以它可以是null已經是。
可以使用空的語法「classname?」只能應用於ValueTypes,如int,DateTime,float等,通常不能爲null

2

只需刪除問號。所有類都默認爲空。只有值類型的對象(如結構)需要明確可空。