我有一个可空的布尔.什么是反转它的快速方法.换句话说,如果value为TRUE,则使其为FALSE,否则使其为TRUE.
澄清(来自评论):
预期的行为是:如果可空的bool有一个值,则反转,否则应该返回null.
Ada*_*ght 28
myBool = !myBool;
编辑:好的,基于对问题的精确理解(即myBool如果它为null则表示null),上面是最简单的答案.
All*_*ice 19
编辑,drblaise是对的,!工作得很好
bool? a = null;
bool? b = false;
bool? c = true;
a = !a;
b = !b;
c = !c;
Assert.AreEqual(a, null);
Assert.AreEqual(b, true);
Assert.AreEqual(c, false);
Run Code Online (Sandbox Code Playgroud)
这是真值表,我知道,这很无聊但我想知道SO如何处理"表"
value !value
|---------|-----------|
| null | null |
|---------|-----------|
| false | true |
|---------|-----------|
| true | false |
|---------|-----------|
Run Code Online (Sandbox Code Playgroud)