簡體   English   中英

C#,反轉可為空布爾的快速方法?

[英]C#, quick way to invert a nullable bool?

我有一個可為空的布爾。 什么是反轉它的快速方法。 換句話說,如果value為TRUE,則將其設置為FALSE,否則將其設為TRUE。

澄清(根據評論):

預期的行為是:如果可為空的布爾值有一個值,則求反,否則應返回null。

myBool = !myBool;

編輯:好的,基於對問題的精確理解(即,如果myBool為null,則myBool說null),以上是最簡單的答案。

編輯,drablaise是正確的, ! 效果很好

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   |
|---------|-----------|

x =!(x ?? false)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM