我是C#中的新成員。在C#中,我不能將結構的值設置爲空如何創建一個具有空值支持的結構?如何創建具有空值支持的結構?
9
A
回答
14
結構體和值類型可以由通過使用通用可空<可空>類來包裹。例如:
Nullable<int> num1 = null;
C#的類型後加上問號爲此提供了一個語言功能:
int? num1 = null;
同樣要對任何類型的值,包括結構的工作。
MSDN說明:Nullable Types (c#)
3
可以使用Nullable<T>
對於結構,或簡寫形式的相同的(?):
表示一個對象,其底層 類型爲值類型也可以是 分配空像引用類型。
struct Foo
{
}
Nullable<Foo> foo2 = null;
Foo? foo = null; //equivalent shorthand form
5
您可以使用Nullable<T>
這在C#中的別名。請記住,結構本身並不是真正的null(編譯器在後臺對待不同的null)。它更多是Option type。
Struct? value = null;
作爲@CodeInChaos提到Nullable<T>
當它處於非空狀態僅裝箱。
+2
'Nullable
2
自「結構」是不是引用類型,則不能將「空」作爲通常的方式。所以你需要使用下面的形式使其「可以爲空」
[結構名稱]? [變量名稱] = null
例如。
Color? color = null;
然後您可以爲對象分配空值並使用條件語句檢查可空性。
相關問題
- 1. 創建具有相似結構的`MenuItem`
- 2. 具有良好Java支持的通用構建工具?
- 3. 創建具有2種結構用C
- 4. 構建JavaScript陣列,但具有空值
- 5. 如何在MATLAB中創建具有多個子結構的結構?
- 6. 如何創建具有繼承功能的Google Closure結構
- 7. 如何創建具有結構的postgresql用戶
- 8. 如何創建具有相同結構的工作表?
- 9. 如何創建具有各級層次結構的目錄?
- 10. 創建空目錄結構
- 11. 如何創建LLVM結構值?
- 12. Java是否具有支持併發修改的數據結構?
- 13. 創建支持層次結構的自定義內容控件
- 14. 如何在sql數據庫中創建具有相同值和結構的列
- 15. 如何在ember中創建支持pod結構的嵌套路由url?
- 16. 如何創建具有空值的對象?
- 17. 如何創建具有價值的Moodle
- 18. 如何在cassandra中創建表結構,該結構支持哪些cluase中的任何列?
- 19. 在非標準位置構建具有SSL支持的Python
- 20. 帶有FFMpeg支持的OpenCV 2.4.7支持與VS 2010(x86)構建
- 21. 如何使用zlib支持構建boost?
- 22. 如何從源構建v4支持庫
- 23. 如何構建Android支持包
- 24. 如何爲使用SCons構建的程序構建gprof支持?
- 25. 創建構建框架以支持編譯支持多種平臺的代碼
- 26. 如何創建具有多種語言支持的formtastic表格(國際化)
- 27. 如何構建具有層次結構的CodeIgniter URL?
- 28. 如何在R中構建具有分層結構的列表?
- 29. 如何創建以下結構的分支
- 30. 創建一個空的結構
你幾乎肯定不應該首先使用結構。 – SLaks
有沒有一個令人信服的理由,這不能被定義爲一個類呢? – juharr