当前位置:  开发笔记 > 后端 > 正文

如果,IIf()和If()

如何解决《如果,IIf()和If()》经验,为你挑选了1个好方法。

我最近问了一个关于IIf与If的问题,并发现VB中有另一个叫做If的函数,它与IIf基本上做同样的事情但是是短路的.

这个If功能是否比IIf功能更好?If语句是否胜过IfIIf函数?



1> Konrad Rudol..:

该死的,我真的以为你一直在谈论操作员.;-)无论如何......

这个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

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有