如何在C#中的两个不同的布尔变量之间切换

时间:2019-03-27 17:50:53

标签: c#

我有这两个不同的bool变量 IsAboutToDoneIsFinished

我只想用一个键来切换这两个Booleans

例如, 当我第一次按下Key (V Letter)时 那么IsAboutToDone应该是true,然后另一个按下的IsAboutToDone应该是false,然后如果我再按一次相同的字母,那么IsFinished应该是true并且再按一次时间将是isFinished = false

基本上 我正在寻找类似的解决方案,可以像

IsAboutToDone =! IsAboutToDone

,但使用两个不同的Booleans变量。

谁能给我建议,哪种方法最好。

3 个答案:

答案 0 :(得分:2)

逻辑上最短的

IsFinished = IsAboutToDone;
IsAboutToDone = !(IsAboutToDone || IsFinished);

但是,如果其他人会阅读您的代码,则如果您为此使用枚举并实现if-else或switch块,可能会更容易理解。

答案 1 :(得分:0)

我不能完全确定您的需求。

使用

docker-compose up --force-recreate

如果IsAboutToDone为False,则如果Finished为True,则为True

如果IsFinished为False,则如果IsAboutToDone为True,则为True

与您的示例相符

编辑:同意t.m.一个枚举可能会更容易理解

答案 2 :(得分:0)

您可以将上次按下的键保存到变量中,并在使用keyPressEvent时通过检查上次保存的值来更改变量的状态。