.NET: 談談C#中的擴充套件方法
擴充套件方法(Extension Methods)是C#3.0時引入的新特性,相信很多人都聽過並且也都用過,最常見的是在LINQ中的使用。
不僅如此,在開發中,我們也可以建立自己擴充套件方法,使用它來最佳化類的設計、簡化程式碼。本文將簡單地介紹擴充套件方法的概念、定義、使用場景以及要注意的點。
四、注意事項
以下是定義與使擴充套件方法時的一些注意事項和最佳實踐:
1、擴充套件方法本質上是為原有型別提供輔助功能,因此,在建立時,要確保它具有實際意義,且遵循單一職責原則;也即,不能過度使用擴充套件方法並且它能夠完成一個具體、完整的功能;
2、擴充套件方法本身具有通用性,因此,它裡面應避免特定的業務資料型別及其相關邏輯;
3、如果為介面增加擴充套件方法,擴充套件方法的名稱空間可以與介面的一致;否則,應儘量避免與原型別寫在同一名稱空間下,這樣會“汙染”原型別。建議的做法是為擴充套件方法所在的類設定一個單獨的名稱空間,如:
4、為介面增加擴充套件方法後,則所有實現此介面的類都會包含該擴充套件方法;
5、在擴充套件方法中,要對第一個引數進行非空檢查,如果為空,應丟擲ArgumentNullException(引數為空)異常。
原文出處:https://www.cnblogs.com/wpinfo/p/extention_method.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2812299/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 由事務擴充套件開談一談套件
- Java 中模擬 C# 的擴充套件方法JavaC#套件
- C#中的擴充套件類的理解C#套件
- .Net Core AutoMapper自定義擴充套件方法的使用APP套件
- C#|.net core 基礎 - 擴充套件陣列新增刪除效能最好的方法C#套件陣列
- C#學習筆記(補充)——擴充套件方法、事件C#筆記套件事件
- 淺談擴充套件歐幾里得演算法套件演算法
- c# 高階應用 理解擴充套件方法C#套件
- C#學習筆記-方法引數、擴充套件方法C#筆記套件
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- Json擴充套件方法JSON套件
- LINQ擴充套件方法套件
- 淺談Kotlin語法篇之擴充套件函式(五)Kotlin套件函式
- 淺談 vue-cli 擴充套件性和外掛設計Vue套件
- android view 擴充套件方法AndroidView套件
- Java 缺失的特性:擴充套件方法Java套件
- .Net core Worker Service 擴充套件庫套件
- c# ExpandoObject動態擴充套件物件C#Object套件物件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 再學Blazor——擴充套件方法Blazor套件
- Flutter——Dart Extension擴充套件方法的使用FlutterDart套件
- shell中擴充套件命令套件
- sql中的擴充套件學習SQL套件
- IT專家暢談:如何啟動和擴充套件成功的AI試點專案套件AI
- tonyenc加密擴充套件使用方法加密套件
- 淺談HASH長度擴充攻擊
- ASP.NET Core擴充套件庫之日誌ASP.NET套件
- C# 反射呼叫擴充類方法C#反射
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- 【SpringBoot】分析 SpringBoot 中的擴充套件點Spring Boot套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- 【17MKH】我在框架中對.Net依賴注入的擴充套件框架依賴注入套件
- springboot中擴充套件ModelAndView實現asp.net core mvc的ActionResult效果Spring Boot套件ViewASP.NETMVC
- 談談ConcurrentHashMap的擴容機制HashMap
- ES6 -- String 擴充套件方法解析套件
- es6 陣列擴充套件方法陣列套件
- 【原創】開源Math.NET基礎數學類庫使用(12)C#隨機數擴充套件方法C#隨機套件
- (精華)2020年6月26日 C#類庫 Enum(擴充套件方法)C#套件