net,我正在尝试验证property的值是否为NaN 但这给了我'不能转换成双倍?将以下错误代码加倍以解决此错误,但如果我删除“?”在模型中,所有方法都可以正常工作 能否请您提供有关如何验证双重身份的帮助?是否是NaN。
public class abcDTO
{
public double? CondPot { get; set; }
public double? WaterPot { get; set; }
public double? WaterInjPot { get; set; }
}
-------
public async Task<abcDTO> UpdateWellDeferment(abcDTO abc)
{
if (HasValue(abc.CondPot))
throw new ArgumentException($"CondPot is not a valid number");
.....
}
public static bool HasValue(double val)
{
return Double.IsNaN(val);
}
答案 0 :(得分:1)
这仅是有限的自动转换,从contains()
(实际上是在给值类型名称加上后缀startsWith()
的情况下)自动转换为Nullable<T>
。
在其他需要进行转换的地方,并决定如何处理?
。
例如。当默认值为0时:
T
其他时候,您需要更丰富的东西:
null
答案 1 :(得分:0)
@Jaynesh,
当您使用可为空的数据类型时,这就是添加?时的操作。操作员在那里。 NaN唯一可以是Null的对吗?因此,您应该简单地检查变量是否具有值。您可以通过调用在Nullable上执行此操作。
abc.CondPot.HasValue
并获取值
abc.CondPot.Value