中年システムエンジニアのオモチャ箱

中年システムエンジニアが初体験のブログ活動。技術情報の備忘録以外も、色々と載せていければと思います。


VB.NET String.Empty と空文字。使うのはどっち!?


【スポンサーリンク】


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 が設定されている場合は、 例外エラーが発生するので気を付けてくださいね!

 

ソースコード

Dim strTemp1 As String = Nothing

If  strTemp1.Length() = 0 Then  <省略>  ’ エラーが発生

処理速度をそれ程、気にしないシステム開発であれば、開発チーム内で統一していれば問題ないと思いますが、処理速度がシビアなシステム開発の場合は気を付けてくださいね!


Visual Basicの絵本 Windowsプログラミングわかる9つの扉