如何使用运算符“??”浮动类型

c#

我收到错误:

Operator '??' cannot be applied to operands of type 'float' and 'float'

我想要一套'var result' ,如果float列表中的属性不为空或空。如果它为空,则使用 的默认float0.0f

我收到错误的代码是这样的:

var result = calculationsList.Where(x => x.SomeValue == 123).FirstOrDefault().Value ?? 0.0f;

我也试过:

var tVal = calculationsList.Where(x => x.SomeValue == 123).FirstOrDefault().Value;
var result = tVal != null ? tVal : 0.0f;

回答

以下是运营商官方文档??的摘录:

在 C# 7.3 及更早版本中,?? 的左侧操作数的类型。运算符必须是引用类型或可为空值类型。从 C# 8.0 开始,该要求被替换为以下内容:?? 左侧操作数的类型。和 ??= 运算符不能是不可为 null 的值类型。

换句话说,运算符的左侧必须是实际允许的东西null。该float类型不符合该要求,但float?将符合该要求。

如果列表中的浮点属性不为空或为空,我正在尝试设置“var 结果”。

没有空或空浮点数之类的东西!它是一种值类型,而值类型从不null


以上是如何使用运算符“??”浮动类型的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>