【发布时间】:2010-12-13 00:09:58
【问题描述】:
protected override Boolean IsValid(String propertyValue)
{
return !String.IsNullOrEmpty(propertyValue) && propertyValue.Trim().Length > 0;
}
这种 C# 验证方法完全符合我的要求,但我不知道您可以像这样使用表达式短路。
当 propertyValue 为 null 时,执行是否仍需要计算表达式的第二部分以产生布尔结果,如果是这样,为什么第二部分不为 Trim 抛出 null ref 异常().Length > 0 调用?
我假设第二部分评估为 false 或 null,但我很想知道这里发生了什么。
抱歉,如果我遗漏了一些非常明显的东西,请赐教。
上帝 - 我错过了一些明显的东西,真是个白痴! - 当第一部分是错误的时,第二部分是无关紧要的,我什至知道这是短循环 - 抱歉浪费人家时间,尴尬的表情是什么?
添加了另一个标签以反映我在思考之前打字的尴尬。
【问题讨论】:
标签: c# syntax expression short-circuiting