【VB.NET】IIf関数とIf演算子について

VB.NET
この記事は約2分で読めます。

IIf関数とIf演算子について

人のソースを見ていたら IIf関数を使っているの見かけたので、記事にしてみました。

内容

IIf関数っていうのは、If演算子と似た結果が得られますが、
どちらを使うべきかでいえば、If演算子です。

Console.WriteLine(IIf(True, 1, 0)) '1
Console.WriteLine(If(True, 1, 0)) '1

上の結果はどちらも同じになります。

ですが下の結果は異なります。

Console.WriteLine(IIf(True, 1, Integer.Parse(""))) 'System.FormatException
Console.WriteLine(If(True, 1, Integer.Parse(""))) '1

これはIIf関数は、評価式の結果に関わらず、第三引数の処理(評価)を行うためです。
If演算子では、第三引数の評価を行わないため処理が高速です。

サンプルコード

Module Module1

    Sub Main()

        Try
            Console.WriteLine(IIf(True, 1, Integer.Parse(""))) '1
        Catch ex As Exception
            'System.FormatException
            Console.WriteLine(ex)
        End Try

        Try
            Console.WriteLine(If(True, 1, Integer.Parse(""))) '1
        Catch ex As Exception
            Console.WriteLine(ex)
        End Try

    End Sub

End Module

 

コメント

タイトルとURLをコピーしました