我正在查看dapper页面,看到了这段简洁的编码:
new { Age = (int?)null, Id = guid });
(int?)null
做什么?
有人可以请说明那里发生了什么,也许会给出一个更“冗长”的代码版本吗?
答案 0 :(得分:6)
int?
是Nullable<int>
的简写。因此,这行代码将null(默认情况下为object
类型)转换为null int。
答案 1 :(得分:2)
如果您拥有的只是new { Age = null }
,编译器无法知道Age
的确切类型。因此,“null
向Nullable<Int32>
”有效地告诉它Age
属性属于该类型。
答案 2 :(得分:2)
这是anonymous type:必须从分配给它的值中暗示Age
的类型。 null
可以是任何可空类型。演员表指定Age
应具有的类型:int?
(又名Nullable<int>
)
答案 3 :(得分:1)
?
标记为Nullable
int
这是((System.Nullable<int>)null)
的语法简写。