1. ホーム
  2. vb.net

[解決済み] IIf()とIfの性能差

2022-12-30 19:11:40

質問

Visual Basic で IIf 関数の代わりに If ステートメントの代わりに

どのように解決するのですか?

VBには以下のようなものがあります。 If という文がありますが、これは質問が指しているのだと思います。

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

前者は基本的にC#の三項条件演算子で、後者はその合体演算子(return result でない限り Nothing でなければ、その場合は "Alternative" ). If は、このように IIf に取って代わり、後者は廃止されました。

C#と同様に、VBの条件付き If 演算子で短絡させることができるので、以下のように安全に書くことができるようになりました。 IIf 関数では不可能です。

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