[英]WHY Nullable<T>,struct, allows 'null'
Nullable 是一個結構體。 而且我知道結構不能被分配為“空”。 那么我們如何才能為 Nullable 的對象分配一個空值呢? 是什么原因?
它實際上並不接受null
; 它只是語法糖,允許其像它的null
。 該類型實際上看起來有點像這樣:
struct Nullable<T>
{
private bool hasValue;
private T value;
}
所以當它被初始化時hasValue == false
和value == default(T)
。
當你寫代碼時
int? i = null;
C# 編譯器實際上在幕后執行此操作:
Nullable<T> i = new Nullable<T>();
將null
轉換為int?
時也會進行類似的檢查int?
在運行時也是如此。
進一步閱讀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.