c#问号操作符后置转换

本文关键字:转换 操作符 | 更新日期: 2023-09-27 18:05:02

我正在看那张整洁的页面,看到了这段简洁的代码:

   new { Age = (int?)null, Id = guid });

(int?)null做什么?

有人能解释一下那里发生了什么,也许给一个更"详细"的代码版本?

c#问号操作符后置转换

int?Nullable<int>的简写。因此,这行代码将null(默认为object类型)转换为空整型。

文档:http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx

如果只有new { Age = null },编译器无法知道Age的确切类型是什么。因此,将null转换为Nullable<Int32>有效地告诉它Age属性是这种类型。

这是一个匿名类型:Age的类型必须从分配给它的值中隐含。null可以是任何可空的类型。强制转换指定Age应该具有的类型:int?(也称为Nullable<int>)

?标记Nullable int

((System.Nullable<int>)null)的语法简写