泛型使用中,解決類型轉換問題


遇到的問題是這樣,系統中有一個字符類型的字段來存儲一些通用的系統配置,雖然存儲的形式是字符串,但是實際在系統中的使用類型則可能是string, bool, int, decimal.

這個時候就想寫一個通用的方法來獲取各種不同類型的返回值,當然這個時候想到的就是使用泛型。那么這個方法的定義大概就是這樣:

T GetValue<T>(string key)

這個方法涉及到一個字符串類型轉換成泛型的問題。

public T GetSingleConfigValue<T>(eConfigKeyName key, T defaultValue)
{
      var config = GetConfig(key)
      return (T)config;
}

直接使用上面的方式,就會出現如下的編譯錯誤。

image 

查了查資料,正確的方法是使用Convert.ChangeType方法:

(T) Convert.ChangeType(result, typeof (T));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM