C#如何检查两个值中的一个是否为TRUE?

Jas*_*onW 6 c# boolean-logic

对于这里的C#专家来说应该是一个简单的问题.

我基本上想要检查一个值或另一个值是否为TRUE,代码的狂野刺戳如下:

if ((Boolean.Parse(staff.getValue("Male")) | Boolean.Parse(staff.getValue("Female")))    
{   
   // is true
}
Run Code Online (Sandbox Code Playgroud)

它是否正确?

谢谢

Las*_*olt 17

如果确实一个应该是真的那么它是:

var male = bool.Parse(staff.getValue("Male"));
var female = bool.Parse(staff.getValue("Female"));

if (male ^ female)    
{
   //is true
}
Run Code Online (Sandbox Code Playgroud)


p.c*_*ell 9

听起来你正在寻找合乎逻辑的OR.

if(condition1 || condition2)
{
}
Run Code Online (Sandbox Code Playgroud)

  • @LukeH` |`不是逻辑OR运算符.它是按位OR运算符. (4认同)

ssh*_*how 7

使用||(双管道)逻辑OR.

bool isMale = Boolean.Parse(staff.getValue("Male");
bool isFemale = Boolean.Parse(staff.getValue("Female");
if (isMale || isFemale) // note double pipe ||
{
   // do something if true
}
Run Code Online (Sandbox Code Playgroud)

在C#语句中,表达式从左到右进行计算.在OR运算中,如果第一个表达式等于true,则不会计算第二个表达式.