我正在尝试实现一个方法,如果其中一个bool为真,则返回true。
bool a = false;
bool b = false;
bool c = true;
bool d = false;
private bool oneOfThem()
{
return a && b && c && d;
}
这不起作用。但是我怎么能让这个工作呢?
答案 0 :(得分:5)
使用OR
(||
)代替&&
运算符.......
|| Operator (C# Reference) - MSDN
条件OR运算符(||)执行其bool的逻辑或运算 操作数。如果第一个操作数的计算结果为true,则为第二个操作数 没有评估。如果第一个操作数的计算结果为false,则第二个操作数 operator确定OR表达式是否作为整体求值 是真还是假。
答案 1 :(得分:3)
private bool oneOfThem()
{
return a || b|| c || d;
}
&&
值上的 false
个短号.. ||
将继续评估和true
值
答案 2 :(得分:2)
如果任何输入bool为真,则返回true:
return a || b || c || d;
进一步阅读
如果其中一个输入bool为真,则返回true:
return new[] { a, b, c, d }.Count(x => x) == 1;
或者
return !new[] { a, b, c, d }.Where(x => x).Skip(1).Any();
答案 3 :(得分:2)
如果你的意思是至少一个是真的,
return a || b || c || d;
如果你的意思只有一个,
int truecount = 0;
if (a) truecount++;
if (b) truecount++;
if (c) truecount++;
if (d) truecount++;
return truecount == 1;
答案 4 :(得分:2)
条件OR运算符(||)执行其bool的逻辑或运算 操作数。如果第一个操作数的计算结果为true,则为第二个操作数 没有评估。如果第一个操作数的计算结果为false,则第二个操作数 operator确定OR表达式是否作为整体求值 是真还是假。
return a || b || c || d;
答案 5 :(得分:0)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public static bool a = false;
public static bool b = false;
public static bool c = true;
public static bool d = false;
static void Main(string[] args)
{
oneOfThem();
Console.Read();
}
public static void oneOfThem()
{
bool[] _bArr = { a , b , c , d };
char[] _cArr = { 'a', 'b', 'c', 'd' };
int i = 0;
foreach (bool _bool in _bArr)
{
if (_bool == true)
{
Console.WriteLine(_cArr[i] + " returned : True.");
}
i++;
}
}
}
}
完成家庭作业?