我正在使用decimal
a 的转换byte array
,以便它包含null
存储在字节中的任何一个或任何其他数字。这里的问题是,当我尝试将 a 转换为null
时Nullable decimal
,它会将其转换为zero
. 我希望它保持null
...
Convert.ToDecimal(obj.sal== null ? null : System.Text.Encoding.ASCII.GetString(obj.sal))
我正在使用decimal
a 的转换byte array
,以便它包含null
存储在字节中的任何一个或任何其他数字。这里的问题是,当我尝试将 a 转换为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?
- 或使用其他形式,default(decimal?)
以便第二个操作数的类型为decimal?
- 否则编译器将无法推断条件表达式的类型。有关详细信息,请参阅此问题。
因为 null 是对象类型(实际上是无类型的),您需要将其分配给类型对象。
x = obj.sal == null ? (decimal?) null
: Convert.ToDecimal(Encoding.ASCII.GetString(obj.sal));