博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 反射类型转换
阅读量:5367 次
发布时间:2019-06-15

本文共 994 字,大约阅读时间需要 3 分钟。

/// /// 泛型类型转换/// /// 
要转换的基础类型
/// 要转换的值///
///
/// by mcjiffy.cn///
public static T ConvertType<T>(object val){ if (val == null) return default(T);//返回类型的默认值 Type tp = typeof(T); //泛型Nullable判断,取其中的类型 if (tp.IsGenericType) { tp = tp.GetGenericArguments()[0]; } //string直接返回转换 if (tp.Name.ToLower() == "string") { return (T)val; } //反射获取TryParse方法 var TryParse = tp.GetMethod("TryParse", BindingFlags.Public | BindingFlags.Static, Type.DefaultBinder, new Type[] { typeof(string), tp.MakeByRefType() }, new ParameterModifier[] { new ParameterModifier(2) }); var parameters = new object[] { val, Activator.CreateInstance(tp) }; bool success = (bool)TryParse.Invoke(null, parameters); //成功返回转换后的值,否则返回类型的默认值 if (success) { return (T)parameters[1]; } return default(T);}

转载于:https://www.cnblogs.com/ppinfo/p/3182502.html

你可能感兴趣的文章
HBase学习之路 (九)HBase phoenix的使用
查看>>
LeetCode() Remove Duplicates from Sorted Array II
查看>>
【svn】idea svn 文件上会出现一个破书
查看>>
cocos2d-x 3.0 场景切换特效汇总(转)
查看>>
The SortedMap Interface
查看>>
SniperOJ-leak-x86-64
查看>>
bzoj 4260: Codechef REBXOR (01 Trie)
查看>>
学好python
查看>>
css-IE中的border-radius和box-shadow
查看>>
利用bootstrap和webform的异步CRUD及分页
查看>>
HDUOJ 1879继续畅通工程(并查集)
查看>>
OC12_自动释放池
查看>>
Saiku资源帖
查看>>
解决手机页面中点击文本框,网页放大问题
查看>>
2-5
查看>>
牛客多校3 A-PACM Team(状压降维+路径背包)
查看>>
HDU - 4284 Travel(floyd+状压dp)
查看>>
1027 制作表格
查看>>
Android之Socket通信、List加载更多、Spinner下拉列表
查看>>
面向对象的介绍与特性
查看>>