초기 바인딩 및 런타임에 바인딩(Visual Basic)

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

초기 바인딩의 장점

초기 바인딩된 개체는 컴파일러가 보다 효율적인 애플리케이션을 생성하는 중요한 최적화를 수행할 수 있도록 하므로 가능한 경우 항상 초기 바인딩된 개체를 사용하는 것이 좋습니다. 초기 바인딩된 개체는 런타임에 바인딩된 개체보다 훨씬 더 빠르며, 사용되는 개체 종류를 정확히 언급하여 코드를 보다 쉽게 읽고 유지 관리하도록 합니다. 초기 바인딩의 또 다른 이점은 IDE(Visual Studio 통합 개발 환경)가 코드를 편집할 때 작업 중인 개체 유형을 정확하게 결정할 수 있기 때문에 자동 코드 완성 및 동적 도움말과 같은 유용한 기능을 사용할 수 있다는 것입니다. 초기 바인딩의 경우 프로그램이 컴파일될 때 컴파일러가 오류를 보고할 수 있으므로 런타임 오류의 수와 심각도도 줄어듭니다.

참고

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

추가 정보