无法转换成双倍?加倍

时间:2019-02-07 15:21:39

标签: c# entity-framework

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);
}

2 个答案:

答案 0 :(得分:1)

这仅是有限的自动转换,从contains()(实际上是在给值类型名称加上后缀startsWith()的情况下)自动转换为Nullable<T>

在其他需要进行转换的地方,并决定如何处理?

例如。当默认值为0时:

T

其他时候,您需要更丰富的东西:

null

答案 1 :(得分:0)

@Jaynesh,

当您使用可为空的数据类型时,这就是添加?时的操作。操作员在那里。 NaN唯一可以是Null的对吗?因此,您应该简单地检查变量是否具有值。您可以通过调用在Nullable上执行此操作。

abc.CondPot.HasValue

并获取值

abc.CondPot.Value