Performance difference between IIf() and If

Bryan Roth picture Bryan Roth · Aug 26, 2008 · Viewed 59.1k times · Source

In Visual Basic, is there a performance difference when using the IIf function instead of the If statement?

Answer

Konrad Rudolph picture Konrad Rudolph · Aug 26, 2008

VB has the following If statement which the question refers to, I think:

' Usage 1
Dim result = If(a > 5, "World", "Hello")
' Usage 2
Dim foo = If(result, "Alternative")

The first is basically C#'s ternary conditional operator and the second is its coalesce operator (return result unless it’s Nothing, in which case return "Alternative"). If has thus replaced IIf and the latter is obsolete.

Like in C#, VB's conditional If operator short-circuits, so you can now safely write the following, which is not possible using the IIf function:

Dim len = If(text Is Nothing, 0, text.Length)