为什么这段代码不运行,我想检查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;
这甚至不需要类型转换