VB6 I如果优势(VB6 IIf advantage)

2019-07-02 12:43发布

是否有性能优势,使用IIfIf

除了简单的代码更少...之间有什么区别:

If msInitialFloodSection <> Trim$(cboFloodSection.Text) Then
    mbFloodSectionChanged = True
Else
    mbFloodSectionChanged = False
End If

mbFloodSectionChanged = IIf(msInitialFloodSection <> Trim$(cboFloodSection.Text), True, False)

Answer 1:

IIf不是运营商或语言结构,它是一个函数,就像任何其他的功能,例如Left 。 因此,将评估其所有参数在所有时间,而用If你只会评估正确的分支。

例:

denominator = 0
value = IIf(denominator = 0, 0, value / denominator)

这将提高Divizion by zero错误,尽管一个独立的分支存在分母为零。

至于性能,它带给我们的是包装你的价值观为变体将需要额外的蜱,没有那么多可言,但如果我们对性能,那么If将更快,因为它不会通过变体和因为它强迫的事情只会计算值中的一个,而不是两个。



文章来源: VB6 IIf advantage