zoukankan
html css js c++ java
Nullable 类型的转换
今天碰到Nullable 不能通过Convert.ChangeType转换,辛苦在网上找到两个解决方法,共享一下。
1.
The PumaCode.org Blog
public
object
ChangeType(
object
value, Type conversionType)
{
if
( conversionType.IsGenericType
&&
conversionType.GetGenericTypeDefinition( ).Equals(
typeof
( Nullable
<>
) ) )
{
if
(value
==
null
)
return
null
;
System.ComponentModel.NullableConverter nullableConverter
=
new
System.ComponentModel.NullableConverter(conversionType);
conversionType
=
nullableConverter.UnderlyingType;
}
return
Convert.ChangeType(value, conversionType);
}
引用:
http://blog.pumacode.org/2006/05/18/using-convert-changetype-on-nullable-types/
2.
Paul Wilson's .NET Blog
public
class
DataTypeConverter
{
public
static
object
ChangeType(Type type,
object
value)
{
if
((value
==
null
)
&&
type.IsGenericType)
{
return
Activator.CreateInstance(type);
}
if
(value
==
null
)
{
return
null
;
}
if
(type
==
value.GetType())
{
return
value;
}
if
(type.IsEnum)
{
if
(value
is
string
)
{
return
Enum.Parse(type, value
as
string
);
}
return
Enum.ToObject(type, value);
}
if
(
!
type.IsInterface
&&
type.IsGenericType)
{
Type type1
=
type.GetGenericArguments()[
0
];
object
obj1
=
DataTypeConverter.ChangeType(type1,value);
return
Activator.CreateInstance(type,
new
object
[]
{ obj1 }
);
}
if
((value
is
string
)
&&
(type
==
typeof
(Guid)))
{
return
new
Guid(value
as
string
);
}
if
((value
is
string
)
&&
(type
==
typeof
(Version)))
{
return
new
Version(value
as
string
);
}
if
(
!
(value
is
IConvertible))
{
return
value;
}
return
Convert.ChangeType(value, type);
}
}
这个代码是WilsonORMapper中的QueryHelper类,不好意思,我Reflector了一下。
引用:
http://weblogs.asp.net/pjohnson/archive/2006/02/07/437631.aspx
查看全文
相关阅读:
【转】js竖状伸缩导航
大学易站暂时关闭通知
【转】神同步!这俩熊孩子太会玩了,以前的同步都弱爆了
【技术贴】搜狗浏览器 标签页 看后吧 解决
四级查分步骤解决无法找到对应的分数 请确认你已安装并启动了CET查分保护盾
解决Mysql远程连接出错不允许访问 ERROR 1130:Host is not allow
xml 获取节点下的 属性。
Oracle 获取日期区间数据
js 数值转换为3位逗号分隔
xml获取子节点
原文地址:https://www.cnblogs.com/maplye/p/443391.html
最新文章
SEO的两大天敌:采集和群发
《Effective C#中文版:改善C#程序的50种方法》简介
关注程序员健康之——中医把脉写字楼白领健康五症结
读《CSS商业布局之道》的一点想法
创业者:必须要知道的6件事情
SEO的至高境界:400个写手创造的每天16万独立访问人数
31、分层驱动程序
2、Windows权限控制,共享管理,配额分配的基础知识
28、Windows内核编程,IRP的同步(2)
1、Windows API函数归总,网络函数、消息函数、文件处理
热门文章
3、Windows API,图像相关
2、Windows API,打印、文字处理、菜单
30、驱动程序调用驱动程序
29、定时器
4、Windows API,设备场景、硬件与系统
1、Win7 UAC的安全、兼容及权限
【java易错点】java split分割字符串 空格问题解析
带图,解决本页不但包含安全的内容,也包含不安全的内容是否显示不安全的内容
Openoffice添加页脚页码页数页眉
【转】深度完美GhostXP_SP3快速装机优化版V2011.12
Copyright © 2011-2022 走看看