我一直在尋找在dapper頁,看到編碼這樣的簡潔位:C#問號後綴運營商投
new { Age = (int?)null, Id = guid });
是什麼(int?)null
辦?
有人可以澄清那裏發生了什麼,也許給一個更「冗長」的代碼版本?
我一直在尋找在dapper頁,看到編碼這樣的簡潔位:C#問號後綴運營商投
new { Age = (int?)null, Id = guid });
是什麼(int?)null
辦?
有人可以澄清那裏發生了什麼,也許給一個更「冗長」的代碼版本?
int?
是Nullable<int>
的簡寫。因爲這樣的這行代碼將null(默認爲object
)轉換爲null int。
如果你只有new { Age = null }
,編譯器無法知道什麼是Age
確切類型的方式。所以「鑄造」null
到Nullable<Int32>
有效地告訴它,Age
屬性是那種類型。
?
標誌着Nullable
INT
這是一個((System.Nullable<int>)null)
語法shorhand。
這是一個anonymous type:Age
的類型必須從分配給它的值中隱含。 null
可以是任何可空類型。演員指定Age
應該有類型:int?
(又名Nullable<int>
)
作爲最早答案,一個還包含一個鏈接的文檔爲我進一步閱讀,我要把這一個答案檢查。其他答案也闡明瞭,Albin的擴展速記,Serge的「匿名類型」和關於'null'的解釋,以及Anton對進一步解釋編譯器如何推斷Age的類型的解釋。再次感謝所有。 – Tim