.NET Framework中CTS、CLS、CLR是什麼?

縮寫的全稱: 
CTS是通用類型系統(Common Type System) 
CLR是公共語言運行時(Common language runtime) 
CLS是公共語言定義(Common Language Specification)

  • 所有類型都可以在 CTS中聲明。CTS定義了一組語言編譯器必須遵循的規則,以定義、引用、使用和存儲引用類型和值類型。因此,遵循CTS,在不同語言中編寫的對象才能彼此交互。但並不是所有的類型都可以用於所有的語言。要建立可以在所有.NET語言中訪問的組件,就要使用CLS。有了CLS,編譯器就可以根據CLS規範檢查代碼是否有效。

    任何支持.NET的語言都不僅僅侷限於CLS定義的公共功能子集。甚至有了.NET,仍可以創建不能在不同語言中使用的組件。這就是說,利用.NET支持所有的語言比利用COM簡單得多。如果把自己限制在CLS之內,就可以保證組件可以在所有的語言中使用。第三方編寫的庫很可能限制在CLS之內,以確保該庫可以在所有的語言中使用。

    .NET Framework是爲了支持多種語言而設計的。在設計.NET的階段中,Microsoft讓許多編譯器開發商建立它們自己的.NET語言。Microsoft自己就發佈了VB.NET、Managed C++、C#、J#和JScript.NET。另外,不同開發商開發了40多種語言,例如Cobol、Smalltalk、Perl和 Eiffel。每種語言都有其特有的優點和許多不同的功能。這些語言的編譯器都進行了擴展,以支持.NET。

提示: 
CLS是一種語言必須支持的最小規範要求。如果把公共方法限制爲CLS,那麼支持.NET的所有語言就都可以使用我們的類!

 【※在.NET Framework中,幾乎所有(但不是所有)的類都是與CLS兼容的。在MSDN文檔說明中,不兼容的類和方法都被特別標記爲不兼容,例如System命名空間中的UInt32結構。UInt32表示32位無符號整數。並不是所有的語言(例如Visual Basic.NET或J#)都支持無符號的數據類型,這種數據類型是與CLS不兼容的。※】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章