boole 값을 초기 값과 반대로 변경
이상하게 들릴지도 모르지만 나는 매번 글을 쓰기 귀찮아요.
if (threadAlive)
{
threadAlive = false;
}
else
{
threadAlive = true;
}
int++나 int-같은 것이 bool 값을 그 값의 반대로 바꾸는 것이 있지 않습니까?
그냥 이렇게 하면 됩니다.
threadAlive = !threadAlive;
네, 있습니다!
threadAlive ^= true;
(이는 C#농담으로, 가장 일반적인 경우 C/C++/Javascript에서 작동하지 않는 경우가 있습니다(일부 조건에 따라 C/C++/Javascript에서 작동할 수 있음), 하지만 사실입니다!^
x or 연산자)
이렇게 하면 됩니다.
threadAlive = !threadAlive;
올바른 용어는 Toggle입니다.
논리적 부정 연산자!
는 자신의 피연산자를 부정하는 단항 연산자입니다.에 대해 정의되어 있습니다.bool
반품.true
그것의 피연산자가 다음과 같은 경우에만false
그리고.false
그것의 피연산자가 다음과 같은 경우에만true
:
threadAlive = !threadAlive;
사용.!
연산자:
bool b = true;
b = !b; // b is now false
기본 유형에 대해 연산자를 오버로드할 수 없습니다.
다른 모든 사람들이 이미 언급했듯이, 이것이 여러분의 최선의 선택입니다.
threadAlive = !threadAlive;
하지만 당신은 내가 절대 추천하고 싶지 않은 것이지만 당신만의 것을 만들 수 있습니다.bool
타이핑하여 오버로드합니다.++
또는 당신의 가치를 뒤집고 싶은 어떤 연산자라도.
다음 코드는 절대 사용해서는 안 되는 코드입니다.
public class MyBool
{
bool Value;
public MyBool(bool value)
{
this.Value = value;
}
public static MyBool operator ++(MyBool myBoolean)
{
myBoolean.Value = !myBoolean.Value;
return myBoolean;
}
}
자신만의 확장 방법을 만들 수도 있지만 이 방법도 더 좋은 방법은 아닙니다.
매우 간단합니다.
threadAlive = ! threadAlive;
언급URL : https://stackoverflow.com/questions/18018289/changing-bool-values-to-opposite-of-the-initial-value
'programing' 카테고리의 다른 글
여러 표에 걸친 합성 지수와 동등합니까? (0) | 2023.10.04 |
---|---|
execute 문을 사용하여 변수에 값을 할당하는 방법 (0) | 2023.10.04 |
MySQL 저장 프로시저를 저장소에 포함하시겠습니까? (0) | 2023.10.04 |
C++ 컴파일러로 사용할 MinGW 파일 (0) | 2023.10.04 |
jquery live hover (0) | 2023.10.04 |