초기 바인딩 및 런타임에 바인딩(Visual Basic)Early and Late Binding (Visual Basic)

Visual Basic 컴파일러는 개체가 개체 변수에 할당 binding 될 때 호출 되는 프로세스를 수행 합니다.The Visual Basic compiler performs a process called binding when an object is assigned to an object variable. 개체는 특정 개체 형식으로 선언된 변수에 할당되면 초기 바인딩됩니다.An object is early bound when it is assigned to a variable declared to be of a specific object type. 초기 바인딩된 개체는 애플리케이션이 실행되기 전에 컴파일러가 메모리를 할당하고 기타 최적화를 수행할 수 있도록 합니다.Early bound objects allow the compiler to allocate memory and perform other optimizations before an application executes. 예를 들어 다음 코드 조각에서는 변수를 FileStream 형식으로 선언합니다.For example, the following code fragment declares a variable to be of type 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에 할당된 인스턴스는 초기에 바인딩됩니다.Because FileStream is a specific object type, the instance assigned to FS is early bound.

반대로 개체에 Object 형식으로 선언된 변수에 할당되면 런타임에 바인딩됩니다.By contrast, an object is late bound when it is assigned to a variable declared to be of type Object. 이 형식의 개체는 모든 개체에 대한 참조를 유지할 수 있지만 초기 바인딩 개체의 다양한 장점은 제공하지 못합니다.Objects of this type can hold references to any object, but lack many of the advantages of early-bound objects. 예를 들어 다음 코드 조각에서는 CreateObject 함수가 반환하는 개체를 포함하도록 개체 변수를 선언합니다.For example, the following code fragment declares an object variable to hold an object returned by the CreateObject function:

' 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

초기 바인딩의 장점Advantages of Early Binding

초기 바인딩된 개체는 컴파일러가 보다 효율적인 애플리케이션을 생성하는 중요한 최적화를 수행할 수 있도록 하므로 가능한 경우 항상 초기 바인딩된 개체를 사용하는 것이 좋습니다.You should use early-bound objects whenever possible, because they allow the compiler to make important optimizations that yield more efficient applications. 초기 바인딩된 개체는 런타임에 바인딩된 개체보다 훨씬 더 빠르며, 사용되는 개체 종류를 정확히 언급하여 코드를 보다 쉽게 읽고 유지 관리하도록 합니다.Early-bound objects are significantly faster than late-bound objects and make your code easier to read and maintain by stating exactly what kind of objects are being used. 초기 바인딩의 또 다른 이점은 Visual Studio IDE (통합 개발 환경)에서 사용자가 편집 하는 동안 작업 중인 개체의 형식을 정확히 확인할 수 있기 때문에 자동 코드 완성 및 동적 도움말과 같은 유용한 기능을 사용할 수 있다는 것입니다. code.Another advantage to early binding is that it enables useful features such as automatic code completion and Dynamic Help because the Visual Studio integrated development environment (IDE) can determine exactly what type of object you are working with as you edit the code. 초기 바인딩의 경우 프로그램이 컴파일될 때 컴파일러가 오류를 보고할 수 있으므로 런타임 오류의 수와 심각도도 줄어듭니다.Early binding reduces the number and severity of run-time errors because it allows the compiler to report errors when a program is compiled.

참고

런타임에 바인딩은 Public으로 선언된 형식 멤버에 액세스하는 데만 사용할 수 있습니다.Late binding can only be used to access type members that are declared as Public. Friend 또는 Protected Friend로 선언된 멤버에 액세스하면 런타임 오류가 발생합니다.Accessing members declared as Friend or Protected Friend results in a run-time error.

참고자료See also