« 最適化パレットでgifを保存 | トップページ | 自分自身を再定義するラムダ式 »

2013年5月11日 (土)

IsNothingと Is Nothingの違い

変数がNothingであるか調べるにはIsNothing関数の戻り値を見る方法と、 Is Nothing 使って調べる方法の2つがあります。

Dim s As String

'お勧めの方法
If s Is Nothing Then
    '省略
End If

'お勧めではない方法
If IsNothing(s) Then
    '省略
End If

Is Nothing の方が少し動作が速いのでこちらを使うべきです。

両者にはもう1つ違いがあります。

IsNothing関数は値型の変数に対しても使えるのに対し、Is Nothingは値型の変数に対して使用するとビルドエラーになります。

けれど値型の変数がNothingであるか調べたくなる場合は皆無といってよく、この違いは無視できます。多分、この余計な機能がついている分IsNothingの方が遅いのでしょう。

念のために補足しておくと値型の変数をNothingにすることはできず、値型の変数に対するIsNothing関数は常にFalseを返します。

Dim i As Integer = Nothing 

のようなプログラムは一見Nothingを代入しているように見えますが、実は初期値である0を代入しています。(だからこの例のプログラムは意味がありません。)

|

« 最適化パレットでgifを保存 | トップページ | 自分自身を再定義するラムダ式 »

Visual Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/197542/57360243

この記事へのトラックバック一覧です: IsNothingと Is Nothingの違い:

« 最適化パレットでgifを保存 | トップページ | 自分自身を再定義するラムダ式 »