C#问号后缀运营商投
问题描述:
我一直在寻找在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
属性是那种类型。
作为最早答案,一个还包含一个链接的文档为我进一步阅读,我要把这一个答案检查。其他答案也阐明了,Albin的扩展速记,Serge的“匿名类型”和关于'null'的解释,以及Anton对进一步解释编译器如何推断Age的类型的解释。再次感谢所有。 – Tim