C#中的默认目的(IInterface)

时间:2016-11-07 15:16:15

标签: c# interface default

如果你有一个名为 - 例如 - IInterface的接口,在C#中编写这样的代码是完全合法的:

var i = default(IInterface);

但它始终返回null

允许这种表达具有独特结果的目的是什么?接口也可以通过数字或结构类实现,因此默认的null不可用。 那么,除了选择允许语言中的default(IInterface)之外,还有什么理由呢?

1 个答案:

答案 0 :(得分:8)

引入了default(T)运算符用于泛型类型。

如果T是类型参数,则会为引用类型返回null,或为值类型返回new T()

一旦运算符存在,就没有理由将其限制为仅使用类型参数,因此它适用于所有类型。