Mas*_*aus 3 c# default interface
如果你有一个名为 - 例如 - 的接口IInterface,在C#中编写这样的代码是完全合法的:
var i = default(IInterface);
Run Code Online (Sandbox Code Playgroud)
但它总是回归null.
允许这种表达具有独特结果的目的是什么?接口也可以通过数字或结构类实现,因此默认null值不可用.那么,除了选择允许default(IInterface)语言之外的原因是什么?
该default(T)运营商引入了泛型类型.
如果T是类型参数,它将返回null引用类型或new T()值类型.
一旦运算符存在,就没有理由将其限制为仅使用类型参数,因此它适用于所有类型.