将null转换为类型对我来说感觉很奇怪所以我想仔细检查这是否是正确的方法:
decimal? d = data.isSpecified ? data.Value : (decimal?)null;
Run Code Online (Sandbox Code Playgroud)


注意:我正在标记答案,表明我个人最喜欢的方法:
decimal? d = data.isSpecified ? data.Value : default(decimal?)
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 18
是的,没关系.备择方案:
condition ? (decimal?) value : null
condition ? new decimal?(value) : null
condition ? value : default(decimal?)
condition ? value : new decimal?()
Run Code Online (Sandbox Code Playgroud)
选择你认为最具可读性的.
在表达式本身之外没有什么可以做的,因为它是编译器不知道的表达式的类型.例如,将整个表达式放在括号中并将其转换为无效.