泛型使用中,解决类型转换问题

简介:

遇到的问题是这样,系统中有一个字符类型的字段来存储一些通用的系统配置,虽然存储的形式是字符串,但是实际在系统中的使用类型则可能是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));

 



本文转自JustRun博客园博客,原文链接:http://www.cnblogs.com/JustRun1983/p/4165742.html,如需转载请自行联系原作者


目录
相关文章
|
6月前
|
安全 编译器 C语言
C++的类型转换
C++的类型转换
29 0
|
7月前
|
安全 C++
C++ 新的类型转换
C++ 新的类型转换
54 0
|
2天前
|
存储 安全 编译器
C++:现代类型转换
C++:现代类型转换
21 5
|
2月前
|
安全 编译器 程序员
C++类型转换
C++类型转换
10 0
|
10月前
|
安全 C#
C#类型转换
C#类型转换
35 0
|
5月前
|
安全 程序员 编译器
C++中的类型转换
C++中的类型转换
|
6月前
|
安全 编译器 C语言
|
9月前
|
编译器 C++
【C++】类型转换
【C++】类型转换
45 0
|
10月前
|
存储 安全 编译器
(强制)类型转换方法
(强制)类型转换方法
72 0
|
安全 程序员 C++
C++——类型转换
C++——类型转换
C++——类型转换