次の方法で共有


オブジェクト変数の割り当て (Visual Basic)

通常の代入ステートメントを使用して、オブジェクト変数にオブジェクトを割り当てます。 次の例に示すように、オブジェクト式または Nothing キーワードを割り当てることができます。

Dim thisObject As Object
' The following statement assigns an object reference.
thisObject = Form1
' The following statement discontinues association with any object.
thisObject = Nothing

Nothing は、現在変数に割り当てられているオブジェクトがないことを意味します。

初期化

コードの実行が開始されると、オブジェクト変数は Nothingに初期化されます。 初期化を含む宣言を持つユーザーは、宣言ステートメントの実行時に指定した値に再初期化されます。

New キーワードを使用して、宣言に初期化を含めることができます。 次の宣言ステートメントでは、オブジェクト変数 testUri を宣言し、 ver し、それらに特定のオブジェクトを割り当てます。 それぞれが、適切なクラスのオーバーロードされたコンストラクターのいずれかを使用してオブジェクトを初期化します。

Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)

関連付けの解除

オブジェクト変数を Nothing に設定すると、変数と特定のオブジェクトの関連付けが中止されます。 これにより、変数を変更してオブジェクトを誤って変更するのを防ぐことができます。 また、次の例に示すように、オブジェクト変数が有効なオブジェクトを指しているかどうかをテストすることもできます。

If otherObject IsNot Nothing Then
    ' otherObject refers to a valid object, so your code can use it.
End If

変数が参照するオブジェクトが別のアプリケーションにある場合、このテストでは、そのアプリケーションがオブジェクトを終了したか、または単に無効にしたかを判断できません。

Nothing値を持つオブジェクト変数は、null 参照とも呼ばれます。

現在のインスタンス

オブジェクトの 現在のインスタンス は、コードが現在実行されているインスタンスです。 すべてのコードはプロシージャ内で実行されるため、現在のインスタンスはプロシージャが呼び出されたインスタンスです。

Me キーワードは、現在のインスタンスを参照するオブジェクト変数として機能します。 プロシージャが Shared でない場合は、 Me キーワードを使用して現在のインスタンスへのポインターを取得できます。 共有プロシージャをクラスの特定のインスタンスに関連付けることはできません。

Meの使用は、現在のインスタンスを別のモジュールのプロシージャに渡す場合に特に便利です。 たとえば、多数の XML ドキュメントがあり、それらのすべてに標準テキストを追加するとします。 次の例では、これを行うプロシージャを定義します。

Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
    XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub

その後、すべての XML ドキュメント オブジェクトがプロシージャを呼び出し、現在のインスタンスを引数として渡すことができます。 次に例を示します。

addStandardText(Me)

こちらも参照ください