.NET: 談談C#中的擴充套件方法

nintyuui發表於2021-09-09

擴充套件方法(Extension Methods)是C#3.0時引入的新特性,相信很多人都聽過並且也都用過,最常見的是在LINQ中的使用。

圖片描述

 不僅如此,在開發中,我們也可以建立自己擴充套件方法,使用它來最佳化類的設計、簡化程式碼。本文將簡單地介紹擴充套件方法的概念、定義、使用場景以及要注意的點。

四、注意事項

以下是定義與使擴充套件方法時的一些注意事項和最佳實踐:
1、擴充套件方法本質上是為原有型別提供輔助功能,因此,在建立時,要確保它具有實際意義,且遵循單一職責原則;也即,不能過度使用擴充套件方法並且它能夠完成一個具體、完整的功能;
2、擴充套件方法本身具有通用性,因此,它裡面應避免特定的業務資料型別及其相關邏輯;
3、如果為介面增加擴充套件方法,擴充套件方法的名稱空間可以與介面的一致;否則,應儘量避免與原型別寫在同一名稱空間下,這樣會“汙染”原型別。建議的做法是為擴充套件方法所在的類設定一個單獨的名稱空間,如:..Extentions。不過,這樣做也有缺點:在操作原有型別的例項時,如果不引用擴充套件方法所在的名稱空間,那麼,它就不容易被發現,而解決這個問題的辦法是,儘量將擴充套件方法文件化,並告訴專案組的其他開發人員;
4、為介面增加擴充套件方法後,則所有實現此介面的類都會包含該擴充套件方法;
5、在擴充套件方法中,要對第一個引數進行非空檢查,如果為空,應丟擲ArgumentNullException(引數為空)異常。

原文出處:https://www.cnblogs.com/wpinfo/p/extention_method.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2812299/,如需轉載,請註明出處,否則將追究法律責任。

相關文章