bri*_*lox 6 c# boolean variable-assignment
有人可以向我解释这行代码的含义以及这是否是一种好的做法?
在我看来,它试图将一个或另一个值分配给布尔值,但目前尚不清楚.
myBoolVar = isC || isP || isX;
Run Code Online (Sandbox Code Playgroud)
Iai*_*way 14
如果isC,isP或isX中的任何一个为真,则myBoolVar将为true.
它类似于| 布尔操作数之间的运算符除了如果左侧的计算结果为true,则不会计算右侧.
至于这是否是一种好的做法,请考虑更详细的语义等价物: -
bool myBoolVar;
if (isC)
{
myBoolVar = true;
}
else if (isP)
{
myBoolVar = true;
}
else if (isX)
{
myBoolVar = true;
}
Run Code Online (Sandbox Code Playgroud)
特别是,考虑您希望维护哪一个.在大多数情况下,我希望人们认为terser myBoolVar = isC || isP || isX;更具可读性.
我从下面的评论中看到,你提出的关于编程是关于简单而不是"炫耀"的争论.我同意程序员经常尝试压缩或故意模糊代码以满足自己的需求 - 这往往会损害项目.这可能不是其中之一.我可能会更清楚地命名变量,并且我可能将它封装在一个适当命名的属性后面,但我肯定会使用a || b || c更详细的构造.
如果您觉得有更明确的表达方式,请与我们分享,我们可以讨论.
这是有条件的OR.的价值观isC和isP和isX被OR-ed在一起.
http://msdn.microsoft.com/en-us/library/6373h346.aspx
您需要做的就是阅读精细手册.
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |