早期绑定和后期绑定

将对象分配给对象变量时,编译器会执行一个名为 binding 的进程。如果将对象分配给声明为特定对象类型的变量,则该对象为“早期绑定”。早期绑定对象允许编译器在应用程序执行前分配内存以及执行其他优化。例如,下面的代码片段将一个变量声明为 FileStream 类型:

//   Create a variable to hold a new object.
System.IO.FileStream FS;
    
//  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.
public   void  TestLateBinding()
{
    
object xlApp;
    
object xlBook;
    
object xlSheet;
    xlApp 
= Interaction.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(22= "This is column B row 2";
}

早期绑定的优点

应当尽可能使用早期绑定对象,因为它们允许编译器进行重要优化,从而生成更高效的应用程序。早期绑定对象比后期绑定对象快很多,并且能通过确切声明所用的对象种类使代码更易于阅读和维护。早期绑定的另一个优点是它启用了诸如自动代码完成和动态帮助等有用的功能,这是因为 Visual Studio 集成开发环境 (IDE) 可以在您编辑代码时准确确定您所使用的对象类型。由于早期绑定使编译器可以在编译程序时报告错误,所以它减小了运行时错误的数量和严重度。

Note注意

后期绑定只能用于访问声明为 Public 的类型成员。访问声明为 FriendProtected Friend 的成员会导致运行时错误。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值