跨語言的程序設計
作者:佚名 時間:2014-04-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語言使用的所有類,對象和數據類型都可以共享,因此可以繼承類,并充分利用組件,而不管它們是用什么語言編寫的.