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

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

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

T GetValue<T>(string key)

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

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

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

image 

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

(T) Convert.ChangeType(result, typeof (T));
相關文章
相關標籤/搜索