我有以下OR运算符,现在当前如果c为null,将返回Error视图,并且在第二次检查时不会引发空异常(!c.ManagedBy ...); 但这只会在编译器在(!c.Ismanaged ..)检查之前执行(c == null)检查时发生.
Book c = elearningrepository.GetBook(id);
if ((c == null) || (!c.IsManagedBy(User.Identity.Name)))
{
return View("Error");
}
Run Code Online (Sandbox Code Playgroud)
所以我可以保证编译器将始终首先执行c == null检查,或者最好将上面的检查分成两个单独的If语句来显式强制执行序列.BR
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |