<分区>
C# 的“非信徒”问我扩展方法的目的是什么。我解释说,您随后可以向已定义的对象添加新方法,尤其是当您不拥有/控制原始对象的源代码时。
他提出“为什么不直接在你自己的类中添加一个方法呢?”我们一直在兜兜转转(以一种好的方式)。我的一般 react 是它是工具带中的另一个工具,而他的 react 是这是对工具的无用浪费……但我认为我会得到一个更“开明”的答案。
在哪些情况下您使用了扩展方法,而您不能(或不应该)使用添加到您自己的类中的方法?
<分区>
C# 的“非信徒”问我扩展方法的目的是什么。我解释说,您随后可以向已定义的对象添加新方法,尤其是当您不拥有/控制原始对象的源代码时。
他提出“为什么不直接在你自己的类中添加一个方法呢?”我们一直在兜兜转转(以一种好的方式)。我的一般 react 是它是工具带中的另一个工具,而他的 react 是这是对工具的无用浪费……但我认为我会得到一个更“开明”的答案。
在哪些情况下您使用了扩展方法,而您不能(或不应该)使用添加到您自己的类中的方法?
最佳答案
扩展方法唯一的优势是代码的可读性。就是这样。
扩展方法允许您这样做:
foo.bar();
而不是这个:
Util.bar(foo);
现在C#里面有很多这样的东西。换句话说,C# 中有许多看似微不足道的功能,它们本身并没有太大的好处。然而,一旦您开始将这些功能组合在一起,您就会开始看到比其各个部分的总和更大的东西。 LINQ 从扩展方法中受益匪浅,因为如果没有扩展方法,LINQ 查询几乎不可读。如果没有扩展方法,LINQ 将可能,但不实用。
扩展方法很像 C# 的分部类。它们本身并不是很有帮助,而且看起来微不足道。但是当您开始使用需要生成代码的类时,部分类开始变得更有意义。
关于c# - 您发现了扩展方法的哪些优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487904/