我最近问了一个关于IIf与If的问题,并发现VB中有另一个叫做If的函数,它与IIf基本上做同样的事情但是是短路的.
这个If功能是否比IIf功能更好?If语句是否胜过If和IIf函数?
该死的,我真的以为你一直在谈论操作员.;-)无论如何......
这个If功能是否比IIf功能更好?
当然.请记住,它内置于语言中.只需要评估两个条件参数中的一个,这可能会节省昂贵的操作.
If语句是否胜过If和IIf函数?
我认为你无法比较两者,因为他们做了不同的事情.如果您的代码在语义上执行任务,您应该强调这一点,而不是决策.在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