String 型の比較をする際に Nothing かまたは空文字かを判定したい場合がよくあると思います。それにこたえるべくして生まれたのが String.IsNullOrEmpty メソッドです。
指定された String オブジェクトが null 参照 (Visual Basic では Nothing) または Empty 文字列であるかどうかを示します。
しかし VB を使用している者にとってこのメソッドは必要ありません。なぜなら String.Empty(空文字)と比較(=)することによって、Nothing でも String.Empty でも True を返すためです。
If 文字列 = String.Empty Then
End If
ではなぜ String.Empty(空文字)と比較すると String.IsNullOrEmpty メソッドと同じ結果を返すのでしょうか。その答えは MSDN に記載されていました。
文字列比較では、Nothing は "" (空白の文字列) として扱います。
見て字のごとく文字列を比較する際に Nothing は空文字として扱われるためです。そのため Nothing と String.Empty(空文字) は同じという結果になっていたのです! つまり上記のコードは次のようになっているわけです。
If String.Empty = String.Empty Then
End If
長いことなぜ同じになるんだろう?と疑問におもっていたのですが、やっと解決できてスッキリしました。