最終更新日 2005 年 11 月 18 日
サンプル コードのダウンロード
(vbmigtips_IsNot.msi, 481 KB)
※ このサンプルをインストールするには Visual Studio 2005 Beta 2 が必要です。
Visual Basic 2005 では、.NET Framework 2.0 がサポートされたことにより、様々な機能が追加されました。そこで今回は、IsNot 演算子について紹介します。
IsNot 演算子は、Is 演算子と対となる機能です。そのため、これまで Is 演算子と Not 演算子を使用して比較していたコードも直接的に比較が行えるようになります。たとえば、これまでの Viusal Basic 6.0 や Visual Basic .NET では、オブジェクトのインスタンスの比較の際、下記のように記述していました。(下記は Visual Basic 6.0 での実装コードです。)
Dim m_form2 As Form2
Private Sub Form_Load()
If m_form2 Is Nothing Then
Set m_form2 = New Form2
End If
m_form2.Show
End Sub
Private Sub Command1_Click()
If Not m_form2 Is Nothing Then
MsgBox "すでに Form2 が表示されています。"
End If
End Sub
リスト
1
上記(リスト1)を実装し、[Form2 を開く]ボタンをクリックすると、「すでに Form2 が表示されています。」というメッセージボックスが表示されます(図1)。
図
1
異なるオブジェクトのインスタンスを比較するコードや、オブジェクトのインスタンスが作成済みかどうかを確認しているリスト1の「If Not m_form2 Is Nothing Then」のように、Visual Basic 6.0 や Visual Basic .NET では、Is 演算子に Not 演算子を使用して比較していました。一方、Visual Basic 2005 では IsNot 演算子が追加されたことにより簡単に直接比較することができるようになりました。リスト1 を Visual Basic 2005 に置き換えると下記のようになります。
Private m_form2 As Form2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If m_form2 Is Nothing OrElse m_form2.IsDisposed Then
m_form2 = New Form2
End If
m_form2.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If m_form2 IsNot Nothing OrElse m_form2.IsDisposed Then
MessageBox.Show("すでに Form2 が表示されています。")
End If
End Sub
リスト
2
上記(リスト2)を実装し、[Form2 を開く]ボタンをクリックすると、図1 のメッセージボックスが表示されます。
このように、IsNot 演算子を使用することで、よりわかりやすくコードの記述が可能となりました。