2

我在这里有这个代码:

public Model.task GetDelete(int qno , int aid , int tid)
{
   return context.questions.FirstOrDefault(a => a.QuestionNo = qno & a.ActivityID == aid & a.TaskID == tid);
}

我需要适合所有 3 个 id,上面有一个错误,我是编程新手,我怎样才能避免这个错误?基本上我需要检查 3 个 id,这可能吗?有错误说

运算符“&&”不能应用于“int”和“bool”类型的操作数

4

2 回答 2

4

您在 lambda 中有赋值运算符=,您需要使用相等运算符==,例如:

context.questions.FirstOrDefault(a => a.QuestionNo == qno & a.ActivityID == aid & a.TaskID == tid);
                                            //here ^^ 

你得到一个错误:

运算符“&&”不能应用于“int”和“bool”类型的操作数

因为赋值运算符int在您的情况下返回值,而右侧的相等运算符需要布尔值。

短路运算符的使用在这里是可选的,如果你的属性没有任何 副作用并且它们返回原始类型或类型,&&它们不会改变你的 lambda 的行为,它们不会覆盖引入副作用的运算符。==

于 2013-06-07T09:07:44.537 回答
3

你应该使用&&而不是&

&&

条件与运算符 (&&) 执行逻辑与

&

对于整数类型, & 计算其操作数的逻辑按位与。对于 bool 操作数, & 计算其操作数的逻辑与;那是`

于 2013-06-07T08:58:11.900 回答