大多数时候,当软件开发人员在 Windows 上提供 API 时,他们会越来越倾向于 .NET 的可扩展性。我喜欢这样做,因为我更喜欢依赖我自己的方法,我可以在将来修改这些方法,并作为他们的 API 的全局入口点,以防他们更改它。
以前,当必须这样做时,我无法继承 API 对象,因为它是密封的或其他什么,我会依赖适配器模式制作我自己的类来包装他们的对象。这是一个实用但相当不优雅的解决方案。扩展方法为您提供了一种向您无法控制的事物添加更多功能的绝妙方式。
许多其他人对它们的最大用途是LINQ!
如果没有提供给 IEnumerable 的扩展方法,LINQ 就不可能实现。
人们之所以喜爱他们,是因为它们使代码更具可读性.
我注意到扩展方法的另一个主要用途(包括我自己)是使代码更具可读性,并使代码看起来好像在做某事属于它应该在的地方。它还摆脱了我多次看到的可怕的“Util”静态神级。什么看起来更好...Util.DecimalToFraction(decimal value); or value.ToFraction();?如果你像我一样,那就是后者。