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()
用于值类型。
一旦运算符存在,就没有理由将其限制为仅适用于类型参数,因此它适用于所有类型。
如果您有一个名为 - 例如 - IInterface
的接口,在 C# 中编写这样的代码是完全合法的:
var i = default(IInterface);
但它总是returns null
。
允许这样的表达式具有唯一结果的目的是什么?一个接口也可以用numeric或者struct 类来实现,默认的null
是不可用的。
那么...在语言中允许 default(IInterface)
的选择之外的原因是什么?
针对泛型类型引入了 default(T)
运算符。
如果 T
是类型参数,它将 return null
用于引用类型或 new T()
用于值类型。
一旦运算符存在,就没有理由将其限制为仅适用于类型参数,因此它适用于所有类型。