T?
是Nullable<T>
的简写例如:int?
是Nullable<int>
的简写
简写语法是语言规范的一部分吗?
我们是否可以为通用接口创建自己的速记语法?
答案 0 :(得分:6)
是的,?
是规范的一部分。你无法创建自己的快捷方式。
4.1.10可空类型
可空类型可以表示其基础类型的所有值加上 额外的
null
值。可空类型写为T?
,其中T
为。{1}} 基础类型。此语法是System.Nullable<T>
的简写, 这两种形式可以互换使用。
答案 1 :(得分:1)
Nullable在C# specification内定义(接近1.3节末尾)。你自己无法做到这一点。
可以使用Nullable类型之前也不必声明它们。对于每个非可空值类型T,存在相应的 可空类型T?,它可以保存一个额外的值null。对于 实例,int?是一种可以保存任何32位整数或值的类型 空。