泛型使用中,解决类型转换问题
2014-12-15 20:00 JustRun 阅读(4495) 评论(1) 编辑 收藏 举报遇到的问题是这样,系统中有一个字符类型的字段来存储一些通用的系统配置,虽然存储的形式是字符串,但是实际在系统中的使用类型则可能是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));

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述