C#, быстрый способ инвертировать nullable bool?

У меня есть nullable bool. Что быстрый путь состоит в том, чтобы инвертировать его. В otherwords, если значением является TRUE, делают это ЛОЖЬЮ, иначе делают это TRUE.

Разъясниться (из комментариев):

Ожидаемое поведение: если nullable bool имеет значение, то инвертируйте, иначе должен возвратить пустой указатель.

13
задан Joel 17 March 2010 в 14:17
поделиться

3 ответа

myBool =! MyBool;

Изменить: ОК, исходя из более точного понимания вопроса (например, myBool сообщает null, если он был нулевым), это самый простой ответ.

28
ответ дан 1 December 2019 в 17:42
поделиться

Править, 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   |
|---------|-----------|
19
ответ дан 1 December 2019 в 17:42
поделиться

x =! (X ?? false)

2
ответ дан 1 December 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: