【VB.NET】String型の Null(Nothing)の比較

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

【VB.NET】String型の Null(Nothing)の比較

String型の Null(Nothing)の比較を説明します。

前提ですが、基本的にNothing が設定出来るのは参照型のオブジェクトのみです。

なので、Integer や Decimal などのプリミティブ型には Nothing を設定しても 0 になります。

Integer や Decimal 型に Nothing を設定したい場合、後ろに「?」を付けて Integer? や Decimal?とする必要があります。

 

内容

サンプルコード

Module Module1
    Sub Main()

        Dim str As Object = Nothing

        Console.WriteLine(str Is Nothing) 'True
        Console.WriteLine(IsNothing(str)) 'True
        Console.WriteLine(str IsNot Nothing) 'False
        Console.WriteLine(String.IsNullOrEmpty(str)) 'True
        Console.WriteLine(str = Nothing) 'True
        ' Console.WriteLine(str.Equals(Nothing)) 'System.NullReferenceException

        str = New String("")

        Console.WriteLine(str Is Nothing) 'False
        Console.WriteLine(IsNothing(str)) 'False
        Console.WriteLine(str IsNot Nothing) 'True
        Console.WriteLine(String.IsNullOrEmpty(str)) 'True
        Console.WriteLine(str = Nothing) 'True
        Console.WriteLine(str.Equals(Nothing)) 'False

    End Sub
End Module
空文字の場合、str Is Nothing で比較すると False になりますが、str = Nothing で比較するとTrue になるので注意です。初期化されているかは、Is演算子を使うようにしましょう

コメント

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