簡體   English   中英

為什么可以為空<T> ,struct, 允許 &#39;null&#39;

[英]WHY Nullable<T>,struct, allows 'null'

Nullable 是一個結構體。 而且我知道結構不能被分配為“空”。 那么我們如何才能為 Nullable 的對象分配一個空值呢? 是什么原因?

它實際上並不接受null 它只是語法糖,允許其它的null 該類型實際上看起來有點像這樣:

struct Nullable<T>
{
    private bool hasValue;
    private T value;
}

所以當它被初始化時hasValue == falsevalue == default(T)

當你寫代碼時

int? i = null;

C# 編譯器實際上在幕后執行此操作:

Nullable<T> i = new Nullable<T>();

null轉換為int?時也會進行類似的檢查int? 在運行時也是如此。

進一步閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM