扩展方法的用法

Dev*_*per 12 .net extension-methods

  • 何时使用扩展方法有意义?
  • 向类型添加扩展方法是否会影响性能?

    这些问题是我之前提到的关于扩展方法的问题的后续问题.

  • And*_*are 11

    何时使用扩展方法有意义?

    当您使用LINQ并希望将功能输出从一个函数链接或管道输出到另一个函数时,它们才有意义.它提高了代码的可读性,使您可以更优雅地表达概念(无论价值多少).

    它们还允许您在不修改该类型的源的情况下为您喜欢的任何类型提供实例方法的外观,这通常可以帮助您在合理使用代码时提高可读性和表达能力

    向类型添加扩展方法是否会影响性能?

    请注意,扩展方法调用如:

    instance.SomeExtensionMethod()
    
    Run Code Online (Sandbox Code Playgroud)

    被编译为:

    StaticExtensionMethodClass.SomeExtensionMethod(instance);
    
    Run Code Online (Sandbox Code Playgroud)

    因此性能将与任何其他静态方法调用相同.