我有这段代码
NullableConverter nullableConverter = new NullableConverter(type);
Type baseType = nullableConverter.UnderlyingType;
Object value = Convert.ChangeType(rule.Data, baseType);
constant = Expression.Constant(value);
在这种情况下,类型为decimal?
,但它可以是任何可以为空的类型。
我需要value
为decimal?
类型,而不是当前类型decimal
。问题是,Convert.ChangeType
无法与可空类型一起正常工作。所以我先创建一个不可空的。
如何将rule.Data
中包含的字符串转换为type
?
答案 0 :(得分:0)
你做不到。
当在Object
中装入可为空的结构时,它不存储盒装的可空结构。如果结构没有值,它将只是框null
,如果它有一个值,它将包含可空结构的基础值。
你甚至不需要为此辩护。