跨语言的程序设计
时间:2014-4-30
程序集和.NET的另一个优点是,它们可以实现跨语言编程,因为可以从任何.NET语言中调用组件,而不管最初它们是用什么语言编写的.
.NET提供了大量支持跨语言编程的功能:
1.Common Language Runtime,它可以管理所有.NET程序集的执行;
2.MSIL,所有的.NET语言编译器都生成它,这是编译器生成的二进制代码的公共标准,是CLR执行的语言,CLR也定义存储程序集的元数据的格式,这表示不管使用什么语言编写,所有的程序集都共享存储元数据的公共格式.
3.Common Language Specification,其作用是,在所有的CLS兼容的语言中编写的程序都共享组件,这些组件具有跨各种语言界限的完全继承性,CLS定义了语言必须支持的功能,以支持与其他.NET语言的交互性,还可以使用CLS中没有的功能,但无法保证其他语言也支持这些功能.
4.Common Type System,它定义由所有的.NET语言使用的基本类型,以及定义自己的类的规则,这可以防止以不兼容方式实现语言(如string类型)
按照CLS规范,可以用C#语言编写组件,用其他.NET语言编写的程序就可以使用包含这个组件的程序集,因为C#和VB.net组件都可以由CLR执行,同样,C#程序也可以使用以VB.NET,Visual C++.NET等语言编写的组件,在程序集级别上,.NET语言使用的所有类,对象和数据类型都可以共享,因此可以继承类,并充分利用组件,而不管它们是用什么语言编写的.