结果是什么.IsVisible相等?
if(a==b)
result.IsVisible = obj1.status.abc_REPORT == 'Y'
&& obj1.AnotherValue.ToBoolean() == false;
答案 0 :(得分:5)
这取决于obj1.status.abc_Report
和obj1.AnotherValue.ToBoolean()
的值(这一切都取决于a == b与否)。
我不太确定这里真正的问题是什么 - 这让你感到困惑?
可能让你感到困惑的一点是短路和&&操作员(可能缺乏支撑!)
&&如果左侧评估为true
,则运算符仅评估其右侧:当且仅当两者<时,表达式的整体结果为true
/ em> sides评估为true
。 (我假设这里没有奇怪的用户定义转换。)
另一种写作方式是:
if (a == b)
{
bool visibility = false;
if (obj1.status.abc_REPORT == 'Y')
{
if (obj1.AnotherValue.ToBoolean() == false)
{
visibility = true;
}
}
result.IsVisible = visibility;
}
注意比较布尔运算的条件,如下:
obj1.AnotherValue.ToBoolean() == false
通常会这样写:
!obj1.AnotherValue.ToBoolean()
(注意开头的感叹号 - 逻辑“not”运算符。)
答案 1 :(得分:5)
与此相同,在更少的行中:
if (a==b) {
if (obj1.status.abc_REPORT == 'Y') {
if (obj1.AnotherValue.ToBoolean() == false) {
result.IsVisible = true;
}
else {
result.IsVisible = false;
}
}
else {
result.IsVisible = false;
}
}
答案 2 :(得分:0)
简单来说:
如果a等于b:
只有在以下情况下才能看到结果:
object1的状态是abc_report是(最可能是Y =是)AND object1的其他值无法转换为布尔值
答案 3 :(得分:0)
我猜测结果.IsVisible是一个布尔值
如果满足以下条件,则为真: obj1.status.abc_REPORT =='Y' 和 obj1.AnotherValue.ToBoolean()== false
此外,a == b必须为true才能输入初始值
答案 4 :(得分:0)
让我们逐行:
if(a==b)
显然,如果a的值等于b执行以下行
result.IsVisible = obj1.status.abc_REPORT == 'Y'
&& obj1.AnotherValue.ToBoolean() == false;
结果是一些对象(可能是winforms控件等),如果obj1.status.abc_REPORT等于'Y'并且obj1.AnotherValue.ToBoolean()等于false,则有一个属性IsVisible将其设置为true;