Verdammt, ich dachte wirklich, du sprichst die ganze Zeit über den Operator. ;-) Anyway ...
Funktioniert diese If-Funktion besser als die IIf-Funktion?
Definitiv. Denken Sie daran, es ist in die Sprache eingebaut. Nur eines der beiden bedingten Argumente muss ausgewertet werden, wodurch möglicherweise ein kostspieliger Vorgang eingespart wird.
Übertrumpft die If-Anweisung die Funktionen If und IIf?
Ich denke, Sie können die beiden nicht vergleichen, weil sie verschiedene Dinge tun. Wenn Ihr Code semantisch eine Zuweisung durchführt, sollten Sie dies betonen, anstatt die Entscheidung zu treffen. Verwenden Sie hier den Operator If
anstelle der Anweisung. Dies gilt insbesondere, wenn Sie es bei der Initialisierung einer Variablen verwenden, da sonst die Variable initialisiert wird standardmäßig in langsamem Code resultierende:
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