If,IIf()和If()
时间:2020-03-05 18:43:23 来源:igfitidea点击:
我最近问了一个关于IIf vs. If的问题,发现VB中还有另一个名为If的函数,它基本上与IIf一样,只是短路。
该If函数的性能是否优于IIf函数? If语句是否胜过If和IIf函数?
解决方案
回答
该死,我真的以为你一直在谈论操作员。 ;-) 反正
Does this If function perform better than the IIf function?
确实。记住,它是语言内置的。只需评估两个条件参数之一,就可以节省昂贵的操作。
Does the If statement trump the If and IIf functions?
我认为我们无法比较两者,因为它们做的事情不同。如果代码从语义上执行分配,则应强调这一点,而不是决策。在此处使用If
运算符代替语句。如果可以在变量的初始化中使用它,尤其如此,因为否则变量将被默认初始化,从而导致代码变慢:
Dim result = If(a > 0, Math.Sqrt(a), -1.0) ' versus Dim result As Double ' Redundant default initialization! If a > 0 Then result = Math.Sqrt(a) Else result = -1 End If