C# C是否在条件语句中使用短路求值?

C# C是否在条件语句中使用短路求值?,c#,C#,下面的代码是一个好的样式。如果对象为null,我们是否可以始终假定第二个谓词不会执行 if(someObject == null || someObject.Count == 0) { //do something } 对。C中的| |运算符短路。如果第一个条件未满足,它将不会执行下一个条件。是。|被称为短路运算符,这意味着如果它知道足以返回true的第一个操作数为true,那么它将不会计算第二个操作数,并立即返回true &&类似-如果其第一个操作数返回false,则会立即返回fal

下面的代码是一个好的样式。如果对象为null,我们是否可以始终假定第二个谓词不会执行

if(someObject == null || someObject.Count == 0)
{
    //do something
}
对。C中的| |运算符短路。如果第一个条件未满足,它将不会执行下一个条件。

是。|被称为短路运算符,这意味着如果它知道足以返回true的第一个操作数为true,那么它将不会计算第二个操作数,并立即返回true


&&类似-如果其第一个操作数返回false,则会立即返回false,而不检查第二个操作数。

正确。如果左表达式的计算结果为true,则右表达式将不会计算。如果要确保计算这两个值,可以使用按位or运算符|:


小心点,你可能不会总是得到你想要的。

你可以用谷歌搜索的时间比写这个问题所花的时间要短。@Jon我想用C语言搜索| |运算符是个坏主意。我应该用或。抱歉,我没有耐心。仅供参考,| | |和或在我的经验中在搜索时都不确定。然而,msdn c操作符不是,它使您只需点击一下目标。你找到接线员了吗??而不是| |-所以| |在搜索结果中点击两下。。。所以我认为还不错。@Jon虽然我不反对,但我宁愿在StackOverflow上得到答案,也不愿在MSDN上得到答案。上面的if子句是一个很好的例子,说明您应该注意的事项;第一个条件充其量是多余的。如果someObject为null,则会引发NullReferenceException。@因此,我的免责声明对此要小心……+1,|在C中不正式称为按位或-…对于整数类型,|计算其操作数的按位或…@AlexeiLevenkov。它有真名吗?管用C怎么说我不相信有一个官方的特殊名称-每个人都称它为位或,每个人都会明白你在说什么。
if(someObject == null | someObject.Count == 0)
{
    //do something
}