if (iAmNull != null && iAmNull.Length == 6) Do();

本文关键字:amp iAmNull if Do Length null | 更新日期: 2023-09-27 18:08:36

可能重复:
如果if结构的第一部分为false,会发生什么?

如果第一个条件在AND中为false,那么第二个条件是否在c#中求值?

即,在本例中是否抛出NullException?

if (iAmNull != null && iAmNull.Length == 6) Do();

if (iAmNull != null && iAmNull.Length == 6) Do();

否,第二个条件不会被评估,因为您使用的是短路&操作人员

来自维基百科:

短路评估、最小评估或McCarthy评估表示某些编程中某些布尔运算符的语义仅执行或计算第二个参数的语言如果第一个参数不足以确定表达式:当AND函数的第一个参数计算为false,则总值必须为false;当OR函数的计算结果为true,则总值必须为true。

否,逻辑运算符有短路评估。