我有一个可以自欺欺人的布尔。什么是反转它的快速方法。换句话说,如果value为TRUE,则使其为FALSE,否则使其为TRUE。
澄清(来自评论):
预期的行为是:如果可空的bool有一个值,则反转,否则应返回null。
答案 0 :(得分:28)
myBool = !myBool;
编辑:好的,基于对问题的精确理解(例如myBool
如果为空则表示为null),以上是最简单的答案。
答案 1 :(得分: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);
这是真相表,我知道,这很无聊但我想知道SO如何处理“表格”
value !value
|---------|-----------|
| null | null |
|---------|-----------|
| false | true |
|---------|-----------|
| true | false |
|---------|-----------|
答案 2 :(得分:2)
x =!(x ?? false)