Gui*_*Sim 1 c# generics methods static types
如果要创建类型为T的空IEnumerable,可以使用静态泛型方法创建它
Enumerable.Empty<T>()
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参见此处
为什么Microsoft选择此选项而不是在泛型类型上使用静态方法(与非泛型类型的通用静态方法相反)?
这个方法可以像这样使用:
Enumerable<T>.Empty()
Run Code Online (Sandbox Code Playgroud)
哪个会返回一个空的IEnumerable<T>.
在我看来,第二个选项更有意义,因为我想要创建的是通用的IEnumerable<T>,而不是非泛型的IEnumerable.
编辑:错字
SLa*_*aks 13
IEnumerable<T>是一个界面.
接口不能包含静态成员.
静态方法实际上是Enumerable类型,它是一个非泛型static类.
因此,没有Enumerable<T>可以包含该方法的泛型类.
应避免使用泛型类型的静态成员.
扩展方法不能放在泛型类型中.
这就是静态Enumerable类不通用的原因.