gpt4 book ai didi

c# - 一个且只有一个参数为真时返回的运算符

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:42 24 4
gpt4 key购买 nike

我在 C# 中做一个 if 语句,如果只有一个参数为真,我想返回真。我将在示例中使用 ||,因为这是我能想到的最接近的东西:

int a = 1;
int b = 2;
int c = 3;

if(a == 1 || b == 2)
{
Console.Log("The first statement is true")
}

if(a == 1 || b == 3)
{
Console.Log("The second statement is true")
}

if(a == 0 || b == 0 || c == 3)
{
Console.Log("The third statement is true")
}

if(a == 1 || b == 0 || c == 3)
{
Console.Log("The fourth statement is true")
}

//Output:
//The second statement is true
//The third statement is true

同样,将 || 视为我正在寻找的运算符。这样的运算符是否存在,还是我应该定义自己的 bool 函数?

最佳答案

对于两个表达式,你可以只使用异或:

if (a == 1 ^ b == 0)

对于两个以上,你可以这样做:

if (new[] { a == 1, b == 0, c == 2 }.Count(x => x) == 1)

这基本上计算了从表达式构造的数组的所有“真实”元素,并检查计数是否为 1。

诚然,首先评估所有条件,即使前两个条件为真,也会计算所有条件(因此最后一个无关紧要)。如果这最终对您来说代价高昂,还有更复杂的替代方案,但我肯定会坚持使用类似的方法,除非它确实是一个问题。

关于c# - 一个且只有一个参数为真时返回的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37757778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com