我从这个问题中知道,扩展方法只能在类实例上运行,而不能在静态类本身上运行.这意味着我无法扩展有用的静态类,如Convert和Math.
Convert
Math
我想知道的是,为什么会这样?从上面的链接,有一些关于C#团队如何实现这种功能的建议.是否有一些哲学上的理由不支持它?
例如,这里有一个理由,为什么没有内置的LINQ ForEach<T>扩展IEnumerable<T>.
ForEach<T>
IEnumerable<T>
c# linq language-design
为什么扩展方法要求声明类是静态的?这是编译器要求吗?
c# c#-3.0
我听说在Java 8中可以灵活地在接口中使用函数定义.我认为我们可以在实现此类接口的所有类中具有此功能的默认状态.
那么,我的问题是我们今天在C#中有这样的功能吗?微软是否有这方面的计划?
c# java default-interface-member
c# ×3
c#-3.0 ×1
default-interface-member ×1
java ×1
language-design ×1
linq ×1