다음 코드를 고려하십시오& = 연산자 등가
bool funcExecuted = false;
bool result = false;
Func<bool> returnFalse =() =>
{
funcExecuted = true;
return false;
};
result &= returnFalse();
string msg = funcExecuted?"Executed":"Not Executed";
Console.WriteLine(msg);
예상 결과 :
- 내가
Not Executed
실제 결과의 메시지가 예상 :
- 나는
Executed
메시지를 받았다.
결론 :
result &= returnFalse();
result = result & returnFalse();
보다는 result = result && returnFalse();
에 컴파일 (나는 후자를 예상).
내 질문은 왜 그런가요?
나는 다른 방향 일 것으로 기대합니다. 우리는 모두 연산자보다 훨씬 더 일반적으로 &&
연산자를 사용하며 "기본 동작"이라고 기대합니다.
업데이트 : 대부분의 답변은 잘못된 질문에 대답 것으로 보인다.
&&
과 &
의 차이점은 &&
이 단락된다는 사실입니다. 반면에 &
은 항상 두 피연산자를 모두 평가합니다. &
항상 두 피연산자를 평가하는 반면 않습니다 a &= b
이 &&
와 &
의 주요 차이점의 a = a && b;
아마도이 경우 && =라고합니다. –
가능한 복제본 [이 C# 코드의 "& ="는 무엇을합니까?] (http://stackoverflow.com/questions/4556027/what-does-the-in-this-c-sharp-code-do) –
@ MarkPattison 그것에 대해 생각해도이 연산자가 있는지 확인하기 위해 검색 중이 었으며 나는 그 사실을 모르고 있습니다. –