结果是什么.IsVisible相等?
if(a==b)
result.IsVisible = obj1.status.abc_REPORT == 'Y'
&& obj1.AnotherValue.ToBoolean() == false;
Run Code Online (Sandbox Code Playgroud)
这取决于值obj1.status.abc_Report和obj1.AnotherValue.ToBoolean()(和这一切都取决于是否== B或没有).
我不太确定这里真正的问题是什么 - 这让你感到困惑?
一位,可能会混淆你是短路&&运营商(也可能是缺乏支撑的!)
&&运算符将仅如果左侧评估,以评估其右侧true:和表达的总体结果是true当且仅当这两个双方的计算结果为true.(我假设这里没有奇怪的用户定义转换.)
所以另一种写作方式是:
if (a == b)
{
bool visibility = false;
if (obj1.status.abc_REPORT == 'Y')
{
if (obj1.AnotherValue.ToBoolean() == false)
{
visibility = true;
}
}
result.IsVisible = visibility;
}
Run Code Online (Sandbox Code Playgroud)
请注意比较布尔运算的条件,如下所示:
obj1.AnotherValue.ToBoolean() == false
Run Code Online (Sandbox Code Playgroud)
通常会这样写:
!obj1.AnotherValue.ToBoolean()
Run Code Online (Sandbox Code Playgroud)
(注意开头的感叹号 - 逻辑"非"运算符.)
与此相同,在更少的行中:
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;
}
}
Run Code Online (Sandbox Code Playgroud)