将null转换为类型对我来说很奇怪,所以我想仔细检查这是否是正确的方法:
decimal? d = data.isSpecified ? data.Value : (decimal?)null;
注意:我正在标记答案,表明我个人最喜欢的方法:
decimal? d = data.isSpecified ? data.Value : default(decimal?)
答案 0 :(得分:17)
是的,没关系。备选方案:
condition ? (decimal?) value : null
condition ? new decimal?(value) : null
condition ? value : default(decimal?)
condition ? value : new decimal?()
选择您认为最具可读性的。
在表达式本身之外没有什么可以做的,因为它是编译器不知道的表达式的类型。例如,将整个表达式放在括号中并将其转换为无效。
答案 1 :(得分:2)
是的,完全没问题。
答案 2 :(得分:1)
类型为data.Value
的{{1}}?如果是这样,这里有一个替代符号,没有演员:
decimal