2013-03-03 159 views
0

我一直在使用C#扩展方法一段时间,我发现它们非常方便。然而,我不确定使用它们的最理想情况是什么,我有时觉得我滥用它们。你什么时候会推荐使用扩展方法?扩展方法的使用

+2

我认为扩展方法是不加入类的行为的地方,因为根据定义,扩展方法只能使用类本身的公共字段/属性/方法。 – Rich 2013-03-03 17:33:52

回答

2

IMO当它真的是扩展(而不是一个核心/关键操作),或当它是一个快捷方式。

扩展的一个例子:

常在沙箱中的应用程序(但它也可以用在以假乱真​​使用,当然)与Print方法延伸IEnumerable

打印方法应该不存在(即:它不应该是IEnumerable类的一部分),但它有助于使语法更简单,更清晰。另外,你可能不希望将它作为该类的一部分出货。

快捷方式的一个例子:

我发现自己经常创造另一件事是帮助扩展与容器对象。而不是调用Items.Add等,我只是做一个AddItem扩展方法。


需要考虑的是它只是语法糖,也就是说,它是为你 - 开发者。所以对于.NET类型,当你认为这是一个好主意并且会使事情变得更清洁时,就使用它。

说到“这个方法应该是扩展还是成员?”请参阅此答案中的第一句,并查看here & here以获取更多信息。