我刚从Code Project下载的项目中看到了这一点:
base.DialogResult = this.Result != null;
我不认为自己是C#的新手,但这个对我来说是新的。谁能告诉我这句话发生了什么?
编辑很棒的答案,谢谢。我以前从未使用过它。
答案 0 :(得分:9)
如果你添加parens,它更容易阅读(和理解)。逻辑比较运算符!=
位于赋值运算符=
之前:
base.DialogResult = (this.Result != null);
同样的陈述,更加冗长:
if (this.Result != null)
base.DialogResult = true;
else
base.DialogResult = false;
答案 1 :(得分:4)
this.Result != null
评估为布尔值,true
或false
。
评估结果在基类的DialogResult
成员中设置。
一点也不奇怪,这只是一项任务。
答案 2 :(得分:3)
!=
(不等于)运算符优先于=
(赋值)运算符。
答案 3 :(得分:2)
这很简单,基本上它会分配表达式的结果
this.Result != null
到
base.DialogResult
表达式使用in-equality运算符,因此返回true或false,具体取决于this.Result是否为null
答案 4 :(得分:0)
这意味着:
bool g = (this.Result != null);
this.DialogResult = g;