因此,扩展方法用于添加类的功能,而无需修改其当前代码。我读过LINQ运算符是用这种方式定义的。
我的问题是,当我们知道我们希望每个实现IEnumerable的类都使用LINQ运算符时,为什么不直接在IEnumerable接口中定义LINQ运算符?为什么要使用扩展方法?
谢谢。
原因有两个:
通过使用合成并设置新的扩展方法语法; Microsoft可以在Enumerable接口上增加功能,而不必担心IEnumerable的现有使用者。