方法定义:

private static T GetValueByKey<T>(string key) where T : IConvertible
{
T localVal=default(T);

string strType = typeof(T).Name;
string valuesData = ConfigurationManager.AppSettings[key].ToString();

localVal = (T)Convert.ChangeType(valuesData, typeof(T));

 

return localVal;

}

 

public static TConvertType DoConvert<TConvertType>(object convertValue, out bool hasConverted)
{
    hasConverted = false;
    var converted = default(TConvertType);
    try
    {
        converted = (TConvertType) 
            Convert.ChangeType(convertValue, typeof(TConvertType));
        hasConverted = true;
    }
    catch (InvalidCastException)
    {
    }
    catch (ArgumentNullException)
    {
    }
    catch (FormatException)
    {
    }
    catch (OverflowException)
    {
    }

    return converted;
}

写法二:


public static TConvertType DoConvert<TConvertType>(object convertValue, out bool hasConverted)
{
hasConverted = false;
var converted = default(TConvertType);
try
{
converted = (TConvertType)
Convert.ChangeType(convertValue, typeof(TConvertType));
hasConverted = true;
}
catch (InvalidCastException)
{
}
catch (ArgumentNullException)
{
}
catch (FormatException)
{
}
catch (OverflowException)
{
}

return converted;
}

 

 

调用:

GetValueByKey<string>("aaa"); 

GetValueByKey<int>("bbb"); 

 

参考:http://stackoverflow.com/questions/8171412/cannot-implicitly-convert-type-int-to-t

 

相关文章:

  • 2021-08-18
  • 2021-09-13
  • 2021-11-17
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-10-20
猜你喜欢
  • 2022-12-23
  • 2021-11-06
  • 2022-12-23
  • 2021-09-13
  • 2021-10-31
  • 2021-11-06
  • 2021-09-13
相关资源
相似解决方案