何时使用扩展方法有意义?
向类型添加扩展方法是否会影响性能?
这些问题是我之前提到的关于扩展方法的问题的后续问题.
Andrew Hare.. 11
当您使用LINQ并希望将功能输出从一个函数链接或管道输出到另一个函数时,它们才有意义.它提高了代码的可读性,使您可以更优雅地表达概念(无论价值多少).
它们还允许您在不修改该类型的源的情况下为您喜欢的任何类型提供实例方法的外观,这通常可以帮助您在合理使用代码时提高可读性和表达能力
请注意,扩展方法调用如:
instance.SomeExtensionMethod()
被编译为:
StaticExtensionMethodClass.SomeExtensionMethod(instance);
因此性能将与任何其他静态方法调用相同.
当您使用LINQ并希望将功能输出从一个函数链接或管道输出到另一个函数时,它们才有意义.它提高了代码的可读性,使您可以更优雅地表达概念(无论价值多少).
它们还允许您在不修改该类型的源的情况下为您喜欢的任何类型提供实例方法的外观,这通常可以帮助您在合理使用代码时提高可读性和表达能力
请注意,扩展方法调用如:
instance.SomeExtensionMethod()
被编译为:
StaticExtensionMethodClass.SomeExtensionMethod(instance);
因此性能将与任何其他静态方法调用相同.