C# 中 default(IInterface) 的用途

Purpose of default(IInterface) in C#

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

var i = default(IInterface);

但它总是returns null

允许这样的表达式具有唯一结果的目的是什么?一个接口也可以用numeric或者struct 类来实现,默认的null是不可用的。 那么...在语言中允许 default(IInterface) 的选择之外的原因是什么?

针对泛型类型引入了 default(T) 运算符。

如果 T 是类型参数,它将 return null 用于引用类型或 new T() 用于值类型。

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