У меня есть nullable bool. Что быстрый путь состоит в том, чтобы инвертировать его. В otherwords, если значением является TRUE, делают это ЛОЖЬЮ, иначе делают это TRUE.
Разъясниться (из комментариев):
Ожидаемое поведение: если nullable bool имеет значение, то инвертируйте, иначе должен возвратить пустой указатель.
myBool =! MyBool;
Изменить: ОК, исходя из более точного понимания вопроса (например, myBool
сообщает null, если он был нулевым), это самый простой ответ.
Править, 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 |
|---------|-----------|