我遇到了一些看起来像这样的代码:
string someString;
...
bool someBoolean = true;
someBoolean &= someString.ToUpperInvariant().Equals("blah");
为什么我要使用按位运算符而不是“=”?
当它应用于布尔运算符时,它不是按位运算符。
它等同于:
someBoolean = someBoolean & someString.ToUpperInvariant().Equals("blah");
您通常会看到快捷方式和运算符&&
,但运算符&
当应用于布尔值时,它也是一个 and 运算符,只是它不执行快捷操作。
您可以使用&&
运算符代替(但没有&&=
运算符)可能会节省一些计算。如果someBoolean
包含false
,第二个操作数将不会被计算:
someBoolean = someBoolean && someString.ToUpperInvariant().Equals("blah");
在您的特殊情况下,该变量设置为true
之前就已经上线了,所以and操作完全没有必要。您可以只计算表达式并分配给变量。另外,您应该使用处理您想要的比较方式的比较,而不是转换字符串然后进行比较:
bool someBoolean =
"blah".Equals(someString, StringComparison.InvariantCultureIgnoreCase);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)