2013-03-03 132 views
0

我一直在使用C#擴展方法一段時間,我發現它們非常方便。然而,我不確定使用它們的最理想情況是什麼,我有時覺得我濫用它們。你什麼時候會推薦使用擴展方法?擴展方法的使用

+2

我認爲擴展方法是不加入類的行爲的地方,因爲根據定義,擴展方法只能使用類本身的公共字段/屬性/方法。 – Rich 2013-03-03 17:33:52

回答

2

IMO當它真的是擴展(而不是一個核心/關鍵操作),或當它是一個快捷方式。

擴展的一個例子:

常在沙箱中的應用程序(但它也可以用在以假亂真​​使用,當然)與Print方法延伸IEnumerable

打印方法應該不存在(即:它不應該是IEnumerable類的一部分),但它有助於使語法更簡單,更清晰。另外,你可能不希望將它作爲該類的一部分出貨。

快捷方式的一個例子:

我發現自己經常創造另一件事是幫助擴展與容器對象。而不是調用Items.Add等,我只是做一個AddItem擴展方法。


需要考慮的是它只是語法糖,也就是說,它是爲你 - 開發者。所以對於.NET類型,當你認爲這是一個好主意並且會使事情變得更清潔時,就使用它。

說到「這個方法應該是擴展還是成員?」請參閱此答案中的第一句,並查看here & here以獲取更多信息。