【发布时间】:2018-08-13 14:17:09
【问题描述】:
下面的代码工作正常,直到发生了一些事情,现在它返回了这个错误消息: 运算符'??'不能应用于“int”和“int”类型的操作数
这是我之前的代码,但现在有什么东西导致了这个错误。
var Amount = (from x in db.Users where x.userID == ID select (x.fee)).Sum() ?? 0;
'fee'定义为
public int? fee { get; set; } //and tried this too
public Nullable<int> fee { get; set; }
据我了解“??”不能对不可为空的类型调用运算符。
使不可为空或删除“?”从'int?'不做任何事情。
有什么建议吗?谢谢!
塞西
【问题讨论】:
-
C#,运算符 ??被称为空合并运算符来检查给定值是否为空,如果为空,则后面的值??将分配给该值。
-
如果您使用
var Amount = (from x in db.Users where x.userID == ID select (x.fee)).Sum(),Amount的Type是什么? -
Nullable
和 int?是严格等价的,这不应该是问题。我无法重现您的编译错误。你能创建一个minimal reproducible example 吗?来编译并足以重现问题的代码,并且尽可能短。