这对你来说可能听起来很奇怪,但我每次都懒得写
if (threadAlive)
{
threadAlive = false;
}
else
{
threadAlive = true;
}
Run Code Online (Sandbox Code Playgroud)
是不是有像int ++或int--这样的东西将bool值改为与其值相反?
p.s*_*w.g 60
这样做:
threadAlive = !threadAlive;
Run Code Online (Sandbox Code Playgroud)
xan*_*tos 15
就在这里!
threadAlive ^= true;
Run Code Online (Sandbox Code Playgroud)
(这是一个C#笑话,在最常见的情况下它不适用于C/C++/Javascript(它可以在C/C++/Javascript中工作,具体取决于某些条件),但它是真的!^是xor运算符)
Kyl*_*ker 10
逻辑否定运算符!是一个否定其操作数的一元运算符.它被定义为bool并且true当且仅当它的操作数是,false并且false当且仅当它的操作数是true:
threadAlive = !threadAlive;
Run Code Online (Sandbox Code Playgroud)
正如其他人已经提到的,这是迄今为止您最好的选择:
threadAlive = !threadAlive;
Run Code Online (Sandbox Code Playgroud)
但是,虽然我永远不会推荐,但您可以创建自己的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;
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以创建自己的扩展方法,但这也不是更好的方法。