【发布时间】:2013-02-15 22:10:04
【问题描述】:
据我了解和阅读,您可以在 if 语句(&& 或 ||)中使用短路,以便不触发第二个条件。如果您希望这两个条件都触发,您将使用单个操作数(& 或 |)。
所以说如果我有如下的内联 if 语句:
var test = (MyObject != null || string.IsNullOrEmpty(MyObject.Property)) ? string.Empty : MyObject.Property;
如果 MyObject 为空,这将引发 object reference 错误,我认为这不应该,因为我正在使用短路。有人可以解释一下吗?
【问题讨论】:
-
您在“?”之前缺少右括号。
-
@Corak 是的,错过了最后一个括号...现在编辑
标签: c# if-statement inline short-circuiting