可空类型的转换问题(?|nullable)

近日在利用反射机制编写的一个页面的控件数据自动获取与封装的工具类时,遇到了 “nullable的类型不能转换”的问题。原来的MODEL字段没有可空类型的,所以也一直没出问题,现在的MODEL字段中有几个属性是?可空类型。

 

1:
成员变量
decimal Id {get; set;}
下面的处理没有问题:
Convert.changeType("12", p.PropetyType);

 

2:
成员变量
decimal? Id {get; set;}
相同的处理就会有问题:
Convert.changeType("12", p.PropetyType);
执行的时候,总是提示nullable的类型不能转换。对于nullable的类型,取得对应的类型是不是有什么特殊的处理。

 

查问了资料,得知目前Convert.ChangeType要求目标类型必须是IConvertible。 虽然decimal实现了IConvertible,但Nullable <decimal>却没有实现。

 

正确的处理方法应该是:

 

 

 

现将自己写的封装方法共享一下:^_^

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值