假设totallvl
是一个整数且chclass1
已创建但chclass2
尚未创建,我为什么要这样做:
totallvl = chclass1.level
If chclass2 IsNot Nothing Then
totallvl = totallvl + chclass2.level
End If
但不是吗?
totallvl = chclass1.level + IIf(chclass2 Is Nothing, 0, chclass2.level)
这就像编译器假设我在这个例子中使用chclass2
但在第一个例子中没有。
答案 0 :(得分:5)
IIf
只是一个功能;无论第一个参数是什么,都会评估chclass2.level
。如果您想要一个类似于其他语言的内联条件运算符,请使用实际的内联If
(在VB 2008及更高版本中可用):
If(chclass2 Is Nothing, 0, chclass2.level)
答案 1 :(得分:2)
因为调用函数时会解析所有函数参数。 if语句只在语句块的“true”部分运行代码。