如果你有一个名为 - 例如 - IInterface
的接口,在C#中编写这样的代码是完全合法的:
var i = default(IInterface);
但它始终返回null
。
允许这种表达具有独特结果的目的是什么?接口也可以通过数字或结构类实现,因此默认的null
不可用。
那么,除了选择允许语言中的default(IInterface)
之外,还有什么理由呢?
答案 0 :(得分:8)
引入了default(T)
运算符用于泛型类型。
如果T
是类型参数,则会为引用类型返回null
,或为值类型返回new T()
。
一旦运算符存在,就没有理由将其限制为仅使用类型参数,因此它适用于所有类型。