c#:更短的方式来写v1!? V2: !
本文关键字:v1 V2 方式 | 更新日期: 2023-09-27 18:15:26
我可以写
bool v1, v2;
// ...
编辑:我很抱歉造成的混乱。正确的语句应该是:
bool v3 = !v1 ? v2 : !v2;
原文
bool v3 = v1 ? v2 : !v2;
更短?或者:是否存在具有相同结果的操作符?
所以我把Anders Abels的答案标记为正确,因为他回答了我最初的问题。我只需要颠倒他的答案。
我认为v1==v2
应该这样做。
对于更新的问题,它是v1!=v2
,或者是安德斯说的v1^v2
。
Vlad已经提供了正确答案。我只是添加了一个简单的表格,它可能有助于展示如何解决这类问题。
| v2 = true | v2 = false |
-----------+------------+------------+
v1 = true | false | true |
-----------+------------+------------+
v1 = false | true | false |
-----------+------------+------------+
编辑:表格已经更新,以匹配更新的问题。
正如Vlad已经提到的,表达式可以重构到!=
中。为澄清添加了括号。编译器不需要它们。
bool v3 = (v1 != v2);
您可以使用xor
(^
运算符),如果一个且只有一个操作数是true
,则会给出true
。它将返回与您想要的相反的结果,因此您必须否定所有内容:
!(v1 ^ v2);