WEB开发网
开发学院软件开发C语言 C# 4.0、动态关键字与 COM 阅读

C# 4.0、动态关键字与 COM

 2010-09-30 22:44:44 来源:WEB开发网   
核心提示: 在这段代码中,您首先创建对组件的引用,C# 4.0、动态关键字与 COM(2),以便自动执行底层 Microsoft Office Word 应用程序的行为,接着,您可以绕过静态类型检查,在代码中直接访问方法、属性、索引生成器属性和字段,您显示 Word 主窗口,添加一个新文档

在这段代码中,您首先创建对组件的引用,以便自动执行底层 Microsoft Office Word 应用程序的行为。接着,您显示 Word 主窗口,添加一个新文档,在其中输入一些文字,然后将文档保存到某个位置。这段代码清晰易懂,而且更重要的是,能够正常运行。

但它能正常运行要归功于 VBScript 提供的特殊功能:后期绑定。后期绑定意味着直到执行流程遇到给定对象之前,该对象的类型都是未知的。当执行流程需要执行给定对象时,运行时环境才会开始确保要调用的该对象成员确实存在,然后再进行调用。在代码真正执行之前,不会对其进行任何提前检查。

您可能知道,像 VBScript 这样的脚本语言并没有编译器。但是,Visual Basic(包括 CLR 版本)多年来一直有一项类似的功能。我承认,我经常会羡慕我的 Visual Basic 同事能够更轻松地使用 COM 对象,而需要进行互操作的应用程序(例如 Office)经常采用这种有价值的构造块。事实上,在有些情况下,即使整个应用程序是用 C# 编写的,我的团队也会用 Visual Basic 编写一部分互操作代码。这有点令人意外?多语言编程不是一种新的前沿技术吗?

在 Visual Basic 中,CreateObject 函数的存在是为了解决顽固的兼容性问题。重点在于基于 .NET Framework 的语言在设计时考虑的是前期绑定。.NET Framework 能够处理 COM 互操作性方案,但是这种方案从来不能由编程语言通过关键字和工具来提供支持,这种情况直到 C# 4.0 才有所改观。

C# 4.0(和 Visual Basic)拥有动态查询功能,这表明后期绑定现在对于 .NET Framework 开发人员来说已经切实可行了。借助动态查询功能,您可以绕过静态类型检查,在代码中直接访问方法、属性、索引生成器属性和字段,而留待运行时进行解析。

上一页  1 2 3 4 5 6 7  下一页

Tags:动态 关键字 COM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接