有没有办法在 C# 中切换布尔变量?
Is there a way to toggle a boolean variable in C#?
有没有办法在 C# 中切换布尔变量的状态?
我知道这是一个简单的解决方案:
bool locked = false;
if (locked == false)
{
locked = true;
}
else
{
locked = false;
}
但是可以像这样在一行中完成吗:
bool locked = false
locked = locked.toggle();
是的。使用以下内容:
locked = !locked;
您尝试过以下方法吗
locked = !locked;
您可以像这样定义扩展方法:
public static class Helpers
{
public static bool Toggle(this bool value)
{
return !value;
}
}
这样你就可以写一些更有意义的东西,比如locked = locked.Toggle()
希望对您有所帮助
您还可以这样做:
locked ^= true;
我认为 chomba 的回答很好,可以使用 ref parameter 进行改进。
b.ToggleMe(); //b's value has changed.
//b = b.ToggleMe(); // assign back to itself is not necessary.
public static class UT
{
public static bool ToggleMe (this ref bool b)
{
b=!b; //toggle job is done.
return b; //extra return value allows it being used inside expression.
}
}
有没有办法在 C# 中切换布尔变量的状态?
我知道这是一个简单的解决方案:
bool locked = false;
if (locked == false)
{
locked = true;
}
else
{
locked = false;
}
但是可以像这样在一行中完成吗:
bool locked = false
locked = locked.toggle();
是的。使用以下内容:
locked = !locked;
您尝试过以下方法吗
locked = !locked;
您可以像这样定义扩展方法:
public static class Helpers
{
public static bool Toggle(this bool value)
{
return !value;
}
}
这样你就可以写一些更有意义的东西,比如locked = locked.Toggle()
希望对您有所帮助
您还可以这样做:
locked ^= true;
我认为 chomba 的回答很好,可以使用 ref parameter 进行改进。
b.ToggleMe(); //b's value has changed.
//b = b.ToggleMe(); // assign back to itself is not necessary.
public static class UT
{
public static bool ToggleMe (this ref bool b)
{
b=!b; //toggle job is done.
return b; //extra return value allows it being used inside expression.
}
}