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
'development' 카테고리의 다른 글
ClickOnce에 대한 대안은 무엇입니까? (0) | 2021.01.08 |
---|---|
WebKitFormBoundary 뒤의 임의의 문자열은 무엇을 의미합니까? (0) | 2021.01.08 |
C # 클래스 선언이 호출되기 전에 대괄호 안에있는 것은 무엇입니까? (0) | 2021.01.08 |
Python에서 yield 표현식의 결과는 무엇입니까? (0) | 2021.01.08 |
Scala / Lift에서 JSON 문자열을 생성하고 구문 분석하는 방법 (0) | 2021.01.07 |