Those of us who\'ve worked in VB/VB.NET have seen code similar to this abomination:
Dim name As String = IIf(obj Is Nothing, \"\", obj.Name)
<
The main thing is that you correctly identified the new If
as an operator rather than a function. It is also typesafe and therefore does not need boxing, and is a direct mapping to the conditional/ternary/? operator in C/C++/C#/Java/etc
Even without the new operator, you can get some improvement in VB.Net with this code:
Public Shared Function IIf(Of T)(ByVal Expression As Boolean, ByVal TruePart As T, ByVal FalsePart As T) As T
If Expression Then Return TruePart Else Return FalsePart
End Function