• Saves Valuable Time
  • Trusted Accuracy for 12 Years
  • 15-Day Money-Back Guarantee

C# Equivalent to VB IIf

Although the conditional ternary operator (?) of C# can be used in a similar way to VB's IIf function, it is not strictly equivalent.  VB's IIf function needs to evaluate all arguments since it is a method (method calls always evaluate all arguments), but the ternary operator is able to bypass some evaluations (using short-circuit logic in a similar way to the logical operators && and ||).

If your VB code used IIf in a way which depended on the side-effects produced by evaluating all arguments (e.g., an argument to IIf could be a method call which changes some state), then your equivalent C# code will either have to be rewritten to avoid reliance on side-effects, or you would have to resort to including the IIf function in your C# code (via a reference to the Microsoft.VisualBasic assembly).

Note that the newer VB If operator behaves identically to the conditional ternary operator since it is not a method, but an operator.


Use Instant C# and Instant VB to convert between VB.NET and C#.     

Additional resource: VB.NET and C# Equivalents


Copyright © 1997 – 2017 Tangible Software Solutions Inc.