当前位置:  开发笔记 > 编程语言 > 正文

有没有时间&&(AndAlso)无关紧要&(和)

如何解决《有没有时间&&(AndAlso)无关紧要&(和)》经验,为你挑选了2个好方法。

如果我正在评估两个变量,而不是两个方法调用,那么天气问题我使用"&&"或"&"

//some logic that sets bool values

boolean X = true;
boolean Y = true;

if (X & Y){
   // perform some operation
}

if (X && Y){
   // perform some operation
}

另外我用于C#3.0/.NET 3.5的书只引用了&&运算符,&运算符会消失吗?



1> vfilby..:

如果您正在执行真/假逻辑测试,请始终使用&&.一个单一的&执行一点'和'.在某些情况下,它会像逻辑测试一样工作,但不能保证适用于所有逻辑案例.单个&的最常见用法是在应用位掩码时.

例子 (&&):

true && true == true

示例(&):

00101001 & 00100001 = 00100001



2> Robert Wagne..:

如果使用单个&(和),则评估表达式的第二部分.如果第二部分依赖于第一部分是真的,这可能是不好的.通常总是使用&&,因为如果第一部分是假的,则不评估第二部分.

逻辑上单个&执行按位操作,正如其他人所说,这对于布尔比较/评估仍然有效.实际上唯一一次使用单个&(或|)(或布尔评估)是第二次评估应该始终运行(如果它是一个函数调用/修饰符).这是不好的做法,也可能是为什么这本书没有提到它.

单个&对标志枚举和位掩码很有用.

以下将抛出obj为null的异常:

bool b = obj != null & obj.IsActive

但这会奏效:

bool b = obj != null && obj.IsActive

这是不好的:

bool b = obj.IsActive && obj.SetActive(false);
bool b = obj.IsActive & obj.SetActive(false);

&运营商将留在这里.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有