.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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 五、談擴充套件方法的理解套件
- 由事務擴充套件開談一談套件
- C#中的this擴充套件方法與javascript中的prototype方法C#套件JavaScript
- Java 中模擬 C# 的擴充套件方法JavaC#套件
- 淺談擴充套件歐幾里得演算法套件演算法
- C#.NET擴充套件方法C#套件
- C# 擴充套件方法 借籤於 Objective-C 擴充套件類.C#套件Object
- C#中的擴充套件類的理解C#套件
- C#基礎系列:擴充套件方法的使用C#套件
- python的unittest測試框架的擴充套件淺談Python框架套件
- .Net3.5新特性-擴充套件方法套件
- C#學習筆記(補充)——擴充套件方法、事件C#筆記套件事件
- c# 高階應用 理解擴充套件方法C#套件
- C#新特性:匿名類和擴充套件方法C#套件
- C#學習筆記-方法引數、擴充套件方法C#筆記套件
- C#|.net core 基礎 - 擴充套件陣列新增刪除效能最好的方法C#套件陣列
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- 分享.NET系統開發過程中積累的擴充套件方法套件
- [丁原]使用Mysql來搭建可擴充套件的SNS網站(淺談)MySql套件網站
- Json擴充套件方法JSON套件
- LINQ擴充套件方法套件
- 淺談 vue-cli 擴充套件性和外掛設計Vue套件
- 淺談Kotlin語法篇之擴充套件函式(五)Kotlin套件函式
- .Net Core AutoMapper自定義擴充套件方法的使用APP套件
- Java 缺失的特性:擴充套件方法Java套件
- 微軟的無敵攪屎棍——談Xbox Game Pass 擴充套件版圖!微軟GAM套件
- shell中擴充套件命令套件
- c# ExpandoObject動態擴充套件物件C#Object套件物件
- 再學Blazor——擴充套件方法Blazor套件
- android view 擴充套件方法AndroidView套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- sql中的擴充套件學習SQL套件
- .Net core Worker Service 擴充套件庫套件
- 如何擴充套件Kubernetes API?套件API
- Flutter——Dart Extension擴充套件方法的使用FlutterDart套件
- STL中的棧的擴充套件 (轉)套件
- IT專家暢談:如何啟動和擴充套件成功的AI試點專案套件AI
- tonyenc加密擴充套件使用方法加密套件