다음을 통해 공유


초기 바인딩 및 런타임에 바인딩

업데이트: 2007년 11월

Visual Basic 컴파일러에서는 개체가 개체 변수에 할당될 때 binding이라는 프로세스를 수행합니다. 개체가 특정 개체 형식으로 선언된 변수에 할당되면 초기 바인딩되었다고 합니다. 초기 바인딩 개체를 사용하면 응용 프로그램이 실행되기 전에 컴파일러에서 메모리를 할당하고 다른 최적화 작업을 수행합니다. 예를 들어, 다음 코드 조각에서는 변수를 FileStream 형식으로 선언합니다.

'  Create a variable to hold a new object.
Dim FS As System.IO.FileStream
' Assign a new object to the variable.
FS = New System.IO.FileStream("C:\tmp.txt", _
    System.IO.FileMode.Open)

FileStream은 특정 개체 형식이므로 FS에 할당된 인스턴스는 초기에 바인딩됩니다.

이와는 반대로 개체가 Object 형식으로 선언된 변수에 할당되면 런타임에 바인딩되었다고 합니다. 이러한 형식의 개체에는 임의의 개체에 대한 참조가 포함될 수 있지만 초기 바인딩된 개체가 제공하는 여러 가지 이점을 제공하지는 않습니다. 예를 들어, 다음 코드 조각에서는 CreateObject 함수에서 반환된 개체를 포함하는 개체 변수를 선언합니다.

' To use this example, you must have Microsoft Excel installed on your computer.
' Compile with Option Strict Off to allow late binding.
Sub TestLateBinding()
    Dim xlApp As Object
    Dim xlBook As Object
    Dim xlSheet As Object
    xlApp = CreateObject("Excel.Application")
    ' Late bind an instance of an Excel workbook.
    xlBook = xlApp.Workbooks.Add
    ' Late bind an instance of an Excel worksheet.
    xlSheet = xlBook.Worksheets(1)
    xlSheet.Activate()
    ' Show the application.
    xlSheet.Application.Visible = True
    ' Place some text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
End Sub

초기 바인딩의 장점

초기 바인딩 개체를 사용하면 컴파일러에서 중요한 최적화 작업이 수행되어 보다 효율적인 응용 프로그램을 만들 수 있습니다. 초기 바인딩 개체는 런타임에 바인딩된 개체보다 훨씬 빠르기 때문에 정확하게 사용되는 개체가 어떤 종류인지 보여 줌으로써 코드가 유지 관리되고 코드의 가독성이 향상됩니다. 뿐만 아니라 초기 바인딩을 사용하면 Visual Studio IDE(통합 개발 환경)에서 코드를 편집할 때 작업하는 개체의 형식을 정확하게 파악할 수 있으므로 자동 코드 완성 및 동적 도움말과 같은 유용한 기능을 사용할 수 있습니다. 초기 바인딩을 사용하면 프로그램이 컴파일될 때 컴파일러에서 오류를 보고할 수 있으므로 런타임 오류의 수와 심각성을 줄일 수 있습니다.

참고:

런타임에 바인딩은 Public으로 선언된 형식 멤버에 액세스할 때만 사용할 수 있습니다. Friend나 Protected Friend로 선언된 멤버에 액세스하면 런타임 오류가 발생합니다.

참고 항목

개념

개체 수명: 개체가 만들어지고 소멸되는 방법

참조

Object 데이터 형식

CreateObject 함수(Visual Basic)