
C#關于Nullable的實作不就是用一個標志位(flag bit)么?那作者這里感覺持否定態度啊?難道Nullable不是用標志位實作的?我們希望它擁有一套合真正的值一樣完整的位模式這個是什么意思呢?
uj5u.com熱心網友回復:
Nullable把值型別參考化,這樣就可以留空了啊。uj5u.com熱心網友回復:
Nullable<T>是結構體,值型別的。
uj5u.com熱心網友回復:
如果Int32直接加那個標志位當然是這樣,值型別(基元型別)是不可能是空的C#也是這樣實作的。Nullable 是包著Int32等基元型別的struct ,記憶體增加也是最多是自己寫的業務占多一點,最后一點意思是32767到-32768都應該代表這些數本身,而不是像遠古時代那找Int32.minvalue (一般都是)來代表空值(當然也有將它搞成class)例如資料庫欄位,以上純屬個人意見。uj5u.com熱心網友回復:
如果把Nullable<int>看成Nullable<ValueType>,是不是就容易理解了?
看下ValueType定義:
public abstract class ValueType : Object
這里只不過使用Nullable<T>進行了隱式的裝箱拆箱操作而已。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/214474.html
標籤:C#
上一篇:C# string id = Request["id"].ToString(); id值為null,是為什么,請各位大佬幫幫忙
