c#问号操作符后置转换
本文关键字:转换 操作符 | 更新日期: 2023-09-27 18:05:02
我正在看那张整洁的页面,看到了这段简洁的代码:
new { Age = (int?)null, Id = guid });
(int?)null
做什么?
有人能解释一下那里发生了什么,也许给一个更"详细"的代码版本?
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)
的语法简写