development

C #에 || = 또는 && = 연산자가없는 이유는 무엇입니까?

big-blog 2021. 1. 8. 22:45
반응형

C #에 || = 또는 && = 연산자가없는 이유는 무엇입니까?


모든 논리 연산자, 시프트 연산자, 더하기 연산자 및 모든 곱셈 연산자에 대해 동등한 할당 연산자가 있습니다.

논리 연산자가 제외 된 이유는 무엇입니까? 그것이 어려운 기술적 이유가 있습니까?


논리 연산자가 제외 된 이유는 무엇입니까? 그것이 어려운 기술적 이유가 있습니까?

그들은하지 않았다 . 당신은 할 수있다 &=거나 |=또는 ^=당신이 원하는 경우.

bool b1 = false;
bool b2 = true;
b1 |= b2; // means b1 = b1 | b2

||그리고 &&솔직히, 그들은 어리석은 조금이기 때문에 사업자는 복합 양식이 없습니다. 어떤 상황에서 말하고 싶습니까?

b1 ||= b2;
b1 &&= b2;

왼쪽이 변경되지 않으면 오른쪽이 평가되지 않도록? 실제로이 기능을 사용하는 사람은 몇 명 밖에없는 것 같습니다. 왜이 기능을 사용합니까?

복합 연산자에 대한 자세한 내용은 여기 내 진지한 기사를 참조하십시오.

http://blogs.msdn.com/b/ericlippert/archive/2011/03/29/compound-assignment-part-one.aspx

후속 만우절 기사는 다음과 같습니다.

http://blogs.msdn.com/b/ericlippert/archive/2011/04/01/compound-assignment-part-two.aspx


어쩌면 그냥 사용

isAdmin = isAdmin || IsGroupAdmin()

나는 때문에 부분적으로 추측 a ||= b: 종류이 구현의 버전이 될 수 있기 때문에 혼동하다 a = a || b, 또는 a = b || a. 그리고 표현의 오른쪽이 때때로 평가되지 않기 때문에 다르게 행동합니다.

참조 URL : https://stackoverflow.com/questions/6346001/why-are-there-no-or-operators-in-c

반응형