












2014-12-15 20:00 JustRun 阅读(4533) 评论() 收藏 举报
遇到的问题是这样,系统中有一个字符类型的字段来存储一些通用的系统配置,虽然存储的形式是字符串,但是实际在系统中的使用类型则可能是string, bool, int, decimal.
这个时候就想写一个通用的方法来获取各种不同类型的返回值,当然这个时候想到的就是使用泛型。那么这个方法的定义大概就是这样:
T GetValue<T>(string key)
这个方法涉及到一个字符串类型转换成泛型的问题。
public T GetSingleConfigValue<T>(eConfigKeyName key, T defaultValue) { var config = GetConfig(key) return (T)config; }
直接使用上面的方式,就会出现如下的编译错误。
查了查资料,正确的方法是使用Convert.ChangeType方法:
(T) Convert.ChangeType(result, typeof (T));
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下右下角的【关注 Justrun】。
因为,我的写作热情也离不开您的肯定支持。
感谢您的阅读,这里还有你可能感兴趣的文章推荐博客文章。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。