当前位置: 首页 > 编程语言 > C#

这段C#代码中的“&=”有什么作用?分享

时间:2023-04-10 11:55:31 C#

这段C#代码中的“&=”是做什么的?我遇到了一些看起来像这样的代码:stringsomeString;...boolsomeBoolean=true;someBoolean&=someString.ToUpperInvariant().Equals("blah");为什么我要使用按位运算符而不是“=”?当它应用于布尔运算符时,它不是按位运算符。它与以下内容相同:someBoolean=someBoolean&someString.ToUpperInvariant().Equals("blah");您通常会看到快捷方式和运算符&&,但是当应用于布尔运算符时,运算符&也是运算符,只是它不执行快捷方式位。您可以使用&&运算符(但不能使用&&=运算符)来保存一些计算。如果someBoolean包含false,则不会评估第二个操作数:someBoolean=someBoolean&&someString.ToUpperInvariant().Equals("blah");在您的特定情况下,该变量在之前的行中设置为true,因此完全不需要操作。您可以只评估表达式并分配给变量。此外,您应该使用比较来处理您想要比较的方式,而不是转换字符串然后进行比较:boolsomeBoolean="blah".Equals(someString,StringComparison.InvariantCultureIgnoreCase);someBoolean=someBoolean&someString.ToUpperInvariant().等于(“废话”);在这种情况下,在someBoolean为真之前,意味着someBoolean=someString.ToUpperInvariant().Equals("blah");对于&运算符,它等同于+=。它的缩写:someBoolean=someBoolean&someString.ToUpperInvariant().Equals("blah");请参阅MSDN(&=运算符)。这是一个简短的形式:someBoolean=someBoolean&someString.ToUpperInvariant().Equals("blah")正如Guffa所指出的,&和&&之间是有区别的。我不会说你可以,但你应该使用&&而不是&:并使你的代码更怪异,但&&使你的代码更具可读性……以及更高的性能。下面的说明如何:以上是C#学习教程:这段C#代码中的“&=”是干什么用的?如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注——classProgram{staticvoidMain(string[]args){if(false&Verifier())Console.WriteLine("确定");计时停止();Console.WriteLine(Chrono.Elapsed);计时.重启();如果(false&&Verifier())Console.WriteLine("OK");计时停止();Console.WriteLine(Chrono.Elapsed);}publicstaticboolVerifier(){//长测试Thread.Sleep(2000);返回真;}}本文采集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: