C#问号运算符后固定为cast
我看着页面,看到了这段简洁的代码:C#问号运算符后固定为cast,c#,operators,C#,Operators,我看着页面,看到了这段简洁的代码: new { Age = (int?)null, Id = guid }); (int?)null的作用是什么 有人能解释一下那里发生了什么,也许能给出一个更“详细”的代码版本吗?int?是Nullable的缩写。因此,这行代码正在将null(默认情况下为object类型)转换为null int 文档:如果您只有new{Age=null},编译器无法知道Age的确切类型。因此,将null强制转换为null有效地告诉它Age属性属于该类型。?标记一个int
new { Age = (int?)null, Id = guid });
(int?)null的作用是什么
有人能解释一下那里发生了什么,也许能给出一个更“详细”的代码版本吗?int?
是Nullable
的缩写。因此,这行代码正在将null(默认情况下为object
类型)转换为null int
文档:如果您只有new{Age=null}
,编译器无法知道Age
的确切类型。因此,将null
强制转换为null
有效地告诉它Age
属性属于该类型。?
标记一个int
它是((System.Nullable)null)
的语法符号,这是一个:年龄的类型必须从分配给它的值中隐含null
可以是任何可为null的类型。cast指定Age
应该具有的类型:int?
(akaNullable
)作为最早的答案,并且其中还包含指向文档的链接以供我进一步阅读,我将对此进行答案检查。其他答案也在解释,阿尔宾的答案是扩展速记,谢尔盖的答案是“匿名类型”和关于null
的解释,安东的答案是关于编译器如何推断年龄类型的进一步解释。再次感谢大家。