VB.NET で開発をしている皆さん、文字列に空文字を設定する際に、String.Empty と空文字("")のどちらを使いますか?
Dim strTemp1 As String = String.Empty
Dim strTemp2 As String = ""
処理速度を調べてみると、たいして変わらないそうです。
なので、開発チームでの方向性で決定していいのかなと思います。
ダメな事は、開発チーム内で String.Empty と 空文字("") を混在して使うことかな~。
文字列が空かどうか判定する場合
文字列が空かどうか判定する方法も色々ありますよね。
Dim strTemp1 As String = "Hello World!!"
If strTemp1 = "" Then <省略>
If String.IsNullOrEmpty(strTemp1) = True Then <省略>
If strTemp1.Equals("") = True Then <省略>
どれも、文字列 strTemp1 が空だったら、If 文内の処理を実行することなります。
この空かどうかの判定で使用する場合、String.Empty と空文字("")のどちらを使っても、やはり、処理速度はたいして変わらないそうです。
しかし、下記のように Nothing が設定されている場合は気を付ける必要があります。
Dim strTemp1 As String = Nothing
If strTemp1 = "" Then <省略>
If String.IsNullOrEmpty(strTemp1) = True Then <省略>
If strTemp1.Equals("") = True Then <省略> ’ エラーが発生
Nothing が設定されている変数 strTemp1 に対して、Equals メソッドを使用した場合は、例外エラーが発生するので気を付けてくださいね!
文字列が空かどうかバイト数で判定する場合
文字列が空かどうかを判定する際、String.Empty や空文字("")のように文字列で判定するのではなく、バイト数で判定する方が処理速度は速いそうです。
Dim strTemp1 As String = String.Empty
If strTemp1.Length() = 0 Then <省略>
ただし、やはり変数 strTemp1 に Nothing が設定されている場合は、 例外エラーが発生するので気を付けてくださいね!
処理速度をそれ程、気にしないシステム開発であれば、開発チーム内で統一していれば問題ないと思いますが、処理速度がシビアなシステム開発の場合は気を付けてくださいね!