Csharp/C#教程:使用三元运算符将null指定给十进制分享


使用三元运算符将null指定给十进制

我正在使用转换为byte array decimal ,这样它包含null或任何其他数字,存储在byte中。 这里的问题是,当我尝试将null转换为Nullable decimal ,它将其转换zero 。 我希望它保持为null

 Convert.ToDecimal(obj.sal== null ? null : System.Text.Encoding.ASCII.GetString(obj.sal)) 

如果您希望结果可能为null,那么您不应该调用Convert.ToDecimal – 它总是返回decimal 。 相反,你应该使用:

 x = obj.sal == null ? (decimal?) null : Convert.ToDecimal(Encoding.ASCII.GetString(obj.sal)); 

请注意,您必须将null文字转换为decimal? – 或使用其他forms,如default(decimal?)以便第二个操作数的类型是decimal? – 否则编译器将无法推断条件表达式的类型。 有关详细信息,请参阅此问题 。

因为null是object类型(实际上是无类型的),您需要将其分配给类型化对象。

上述就是C#学习教程:使用三元运算符将null指定给十进制分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 x = obj.sal == null ? (decimal?) null : Convert.ToDecimal(Encoding.ASCII.GetString(obj.sal)); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/955921.html

(0)
上一篇 2021年11月21日
下一篇 2021年11月21日

精彩推荐