分享.NET系統開發過程中積累的擴充套件方法

發表於2015-08-13

.NET 3.5提供的擴充套件方法特性,可以在不修改原型別程式碼的情況下擴充套件它的功能。下面分享的這些擴充套件方法大部分來自於Code Project或是Stackoverflow,.NET為此還有一個專門提供擴充套件方法的網站(extensionMethod)。

涵蓋型別轉換,字串處理,時間轉化,集合操作等多個方面的擴充套件。

1 TolerantCast 匿名型別轉換

這個需求來源於介面中使用BackgroundWorker,為了給DoWork傳遞多個引數,又不想定義一個型別來完成,於是我會用到TolerantCast方法。參考如下的程式碼:

2 ForEach 集合操作

這個方法的定義很簡單但也很實用,它的使用方法如下:

擴充套件方法的原始碼定義只有一行,原始碼如下:

當我想對一個集合中的每個元素執行相同的操作時,常常會藉助於此方法實現。

 

3 Capitalize 字串首字母大寫

直接對字串操作,將字串的首字母改成大寫,原始碼參考如下:

 

4 ToDataTable 強型別物件集合轉化為DataTable

開發中經常會遇到將List<Entity>轉化為DataTable,或是反之將DataTable轉化為List<Entity>,stackoverflow上有很多這個需求的程式碼,參考下面的程式程式碼:

 

5 SetAllValues 給陣列中的每個元素賦值

實現給陣列中的每個元素賦相同的值。

 

6 ToXml 序列化物件為Xml格式

可以將一個物件序列化為Xml格式的字串,儲存物件的狀態。

 

7 Between 值範圍比較

可以判斷一個值是否落在區間範圍值中。

類似這樣的操作,下面的方法是取2個值的最大值。

8 StartDate DueDate 開始值或末值

業務系統中常常會用到時間比較,如果系統是用DateTime.Now變數與DateTime.Today來作比較,前者總是大於後者的,為此需要做一個簡單轉化,根據需要將值轉化為開始值或末值,也就是0點0分0秒,或是23時59分59秒。

9 First Day Last Day 月的第一天或是最後一天

10 Percent 百分比值

計算前一個數值佔後一個數值的百分比,常用於統計方面。

擴充套件方法原始碼下載:http://files.cnblogs.com/files/JamesLi2015/ExtensionMethod.zip

相關文章