前段時間我認爲Nullable的<>值類型是類,封裝值類型和HasValue的bool。用一些隱式投射operador爲null,剛剛在BCL實施。Nullable <>類型是BCL,CLR還是兩者的實現?
但作爲一個結構,如何實現?可空<> CLR的struct是「特殊的」嗎?
前段時間我認爲Nullable的<>值類型是類,封裝值類型和HasValue的bool。用一些隱式投射operador爲null,剛剛在BCL實施。Nullable <>類型是BCL,CLR還是兩者的實現?
但作爲一個結構,如何實現?可空<> CLR的struct是「特殊的」嗎?
Nullable<T>
被定義爲正常結構,但有在CLR中特殊鉤到框/拆箱的[mscorlib]System.Nullable`1
的實例,以根據HasValue
屬性空。這裏有更多詳細信息here
這是關於可空類型的MSDN文章。
http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=VS.100).aspx
我不知道你正在試圖獲得在可空<>,除非你是錯誤的理解是,可空類型是System.Nullable<T>
結構的情況下,是什麼。
我只是想了解更多關於.Net如何工作 – 2011-01-14 18:15:59
Nullable<>
是一個在mscorlib中實現的結構。
一件特別的事情是在C#編譯器中將X?
識別爲Nullable<X>
的別名。
`Nullable`是一個靜態類,與`Nullable`結構對象一起工作(如有任何混淆)。 –
BoltClock
2011-01-14 17:58:46
我在詢問Nullable <> – 2011-01-14 17:59:35