개체 변수 할당(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 키워드를 사용하여 선언에 초기화를 포함할 수 있습니다. 다음 선언문은 개체 변수를 testUriver를 선언하고 특정 개체를 할당합니다. 각각은 적절한 클래스의 오버로드된 생성자 중 하나를 사용하여 개체를 초기화합니다.

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 키워드는 현재 인스턴스를 참조하는 개체 변수 역할을 합니다. 프로시저가 공유되지 않은 경우 Me 키워드를 사용하여 현재 인스턴스에 대한 포인터를 가져올 수 있습니다. 공유 프로시저는 클래스의 특정 인스턴스와 연결할 수 없습니다.

Me를 사용하는 것은 현재 인스턴스를 다른 모듈의 프로시저에 전달하는 데 특히 유용합니다. 예를 들어 XML 문서가 여러 개 있고 모든 문서에 표준 텍스트를 추가하려는 경우를 가정해 보겠습니다. 다음 예제에서는 이 작업을 수행하는 프로시저를 정의합니다.

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

그러면 모든 XML 문서 개체가 프로시저를 호출하고 현재 인스턴스를 인수로 전달할 수 있습니다. 다음은 이에 대한 예입니다.

addStandardText(Me)

참고 항목