扩展方法与常规方法 - 最佳实践思路

Ran*_*der 22 c#

我在确定何时将方法实现为扩展方法以及何时将方法实现为独立方法时遇到了一些困难.人们在确定这一点时会遵循哪些最佳做法?

And*_*are 24

如果满足以下任一条件,请使用扩展方法:

  • 您需要一个类型的方法,并且您不拥有源.
  • 你需要一个方法上的类型,你自己的来源,类型是一个接口.
  • 你需要在一个类型的方法,你自己的来源,但加入的方法创建不需要的耦合.*

否则,您应该对实际类型本身使用实际方法.

我认为为您拥有源代码的类或结构创建扩展方法没有多大意义 - 为什么在常规方法足够时将读者与扩展方法混淆?

建议阅读: 框架设计指南:扩展方法

*想象一下,您希望为类型添加便捷方法,但不希望创建不应该属于API的程序集或类型的依赖项.您可以使用扩展方法来管理它.

  • 我要补充的另一种情况是:你需要一个类型的方法,你拥有源,但该方法会创建一个不需要的耦合. (6认同)