2013-06-07 3 views
2

내가 여기에이 코드가 있습니다C#의 람다 식 && 사업자

나는 3 개 ID를 맞게 필요
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에 대한 확인이 필요합니까?

Operator '&&' cannot be applied to operands of type 'int' and 'bool'

+1

왜 코드에서'&& '대신'&'를 사용합니까? – Jon

+2

또한 첫 번째 검사에서'='가 누락되었습니다. '=='이 필요하고'='만 있습니다. – Jon

답변

3

당신은 && 대신 &

&&의 사용해야 말하는 오류가 발생

conditional-AND operator (&&) performs a logical-AND

&

For integral types, & computes the logical bitwise AND of its operands. For bool operands, & computes the logical AND of its operands; that is`

+0

내가 시도한 &&뿐만 아니라, 그것도 작동하지 않습니다, 동일한 오류 – user2376998

+0

대체'='''==' – Mzf

4

당신은 람다 = 내부의 할당은 운영자가입니다입니다, 당신은 오류가

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

: 당신은 같은 항등 연산자 ==를 사용할 필요가 대입 연산자이 경우에 int 값을 반환

Operator '&&' cannot be applied to operands of type 'int' and 'bool'

때문에, 오른쪽에 항등 연산자는 부울을 기대하고있다. 단락 연산자 &&

사용 그들이 당신의 재산이 어떤 side effects이없는 경우 당신의 람다의 행동, 변경되지 않습니다, 여기에 선택 사항이며 그들은, 기본 유형 또는 형태를 돌려 그 돈 ' == 연산자가 부작용을 도입했습니다.