.net - 如果、IIf() 和 If()

标签 .net vb.net if-statement iif-function

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

If 函数的性能是否比 IIf 函数更好? If 语句是否胜过 IfIIf 函数?

最佳答案

该死,我真的以为你一直在谈论运算符(operator)。 ;-) 无论如何……

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

关于.net - 如果、IIf() 和 If(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478/

相关文章:

vb.net - Lazy(Of T) 使用/初始化

c# - 从 .NET 2.0 应用程序调用 .NET 4.0 WPF 类库

vb.net - 如何在 VB.NET 中激活、移动和调整窗口大小

java - 从字段中获取文本,但如果为空,则执行此操作

c++ - 更新两个数组以跟踪月份和日期

c# - EF entity.attach 不起作用

c# - 用于发送邮件的通知服务实现

mysql - rails if 语句,如果没有找到记录

c# - 何时需要包含/排除 MVC 操作过滤器的基本调用?

.Net 上下文弹出窗口不显示 Paypal 屏幕