程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#兩種任意類型轉換支持(示例:String convert to Type)

C#兩種任意類型轉換支持(示例:String convert to Type)

編輯:C#入門知識

有時候我們在編寫程序的時候會突然使用一些比較少見的用法,比如今天在編寫程序過程中,遇到這樣一個問題。這個問題我以前沒有遇到過,剛開始不知道怎麼處理比較好。在搜尋的過程中發現其實.net類庫已經提供了現成的處理方法。因此在此記錄一下,僅供以後學習參考,也希望能夠有同樣需要的朋友一個參照。下面來看看這個問題吧!

  問題描述:有一個泛型方法如public List<T> getList<T>(),它返回的是一個List集合,List集合中元素的類型由調用泛型方法時指定。在getList方法具體實現中,可能需要將某種類型的數據轉換成T類型,然後添加到List集合中。

  舉例說明:調用方法getList<int>(),數據本身是string類型,這樣則需要將string類型數據類型轉換成int類型,才能添加到List<int>集合中。

  解決方法:

    我們在命名空間System下,找到了Convert類下有一個ChangeType方法,它有三種重載方式,如下圖所示:

    \

    關於這個方法的詳細介紹請參照MSDN:http://technet.microsoft.com/zh-cn/library/system.convert.changetype(en-us).aspx

    有了這個方法,我們來看一下如何解決這個問題了。 

  1. 獲取泛型類型T的System.Type對象,使用typeof(T)。
  2. 使用Convert.ChangeType方法將String轉換成等效於T對象的object。
  3. 將得到的object對象轉換成T。

  可以將上述過程提取成公有方法,看看下面代碼。

  01   public static T FromType<T,TK>(TK text) 02         { 03             try 04             { 05                 return (T) Convert.ChangeType(text, typeof (T), CultureInfo.InvariantCulture); 06             } 07             catch 08             { 09                 return default(T); 10             } 11         }     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved