为什么这段代码不运行,我想检查json是否包含keyPurchasedValue的整数?(二):

public PropertyInfo(Newtonsoft.Json.Linq.JToken jToken)
{
    this.jToken = jToken;
    int PurchasedValue = (int)(jToken["PurchasedValue"].Value ?? 0);
}

错误是:
Error CS0019: Operator `??' cannot be applied to operands of type `method group' and `int' (CS0019)

最佳答案

根据我的理解jToken["PurchasedValue"]是一个可以为空的值。
你必须使用

int PurchasedValue = (int)(jToken["PurchasedValue"]?? 0);

nullableObj.Value仅当存在nullableObj的值时,才可以正确使用。
否则你可以用
int PurchasedValue = jToken["PurchasedValue"].HasValue?jToken["PurchasedValue"].Value: 0;

这甚至不需要类型转换

08-05 13:27