公共語言規範

公共語言規範 (Common Language Specification, CLS)

公共語言運行庫支持的語言功能的子集,包括幾種面向對象程式語言的通用功能。符合 CLS 的組件和工具能夠保證與其他符合 CLS 的組件和工具互動操作。

基本介紹

定義,適用對象,

定義

.NET Framework將CLS定義為一組規則,所有.NET語言都應該遵循此規則才能創建與其他語言可互操作的應用程式,但要注意的是為了使各語言可以互操作,只能使用CLS所列出的功能對象,這些功能統稱為與CLS兼容的功能。 例如:C#支持無符號數字類型,該特徵能通過CTS的測試,但CLS卻僅僅識別符號數字類型。因此,如果用戶在一個組件中使用C#的無符號類型,就可能不能與不使用無符號類型的語言(如VB.NET)設計的.NET組件實現互操作。這裡用的是“可能不”,而不是“不可能”,因為這一問題實際依賴於對non-CLS-compliant項的可見性。事實上,CLS規則只適用於或部分適用於那些與其他組件存在聯繫的組件中的類型。實際上,用戶能夠安全實現含私有組件的項目,而該組件使用了用戶所選擇使用的.NET語言的全部功能,且無需遵守CLS的規範。另一方面,如果用戶需要.NET語言的互操作性,那么用戶的組件中的公共項必須完全符合CLS規範。

適用對象

要和其他對象完全互動,而不管這些對象是以何種語言實現的,對象必須只向調用方公開那些它們必須與之互用的所有語言的通用功能。為此定義了公共語言規範 (CLS),它是許多應用程式所需的一套基本語言功能。CLS 規則定義了 通用類型系統 的子集,即所有適用於公共類型系統的規則都適用於 CLS,除非 CLS 中定義了更嚴格的規則。CLS 通過定義一組開發人員可以確信在多種語言中都可用的功能來增強和確保語言互用性。CLS 還建立了 CLS 遵從性要求,這幫助您確定您的託管代碼是否符合 CLS 以及一個給定的工具對託管代碼(該代碼是使用 CLS 功能的)開發的支持程度。
如果您的組件在對其他代碼(包括派生類)公開的 API 中只使用了 CLS 功能,那么可以保證在任何支持 CLS 的程式語言中都可以訪問該組件。遵守 CLS 規則、僅使用 CLS 中所包含功能的組件叫做符合 CLS 的組件。
大多數由 .NET Framework 類庫概述 中的類型定義的成員都符合 CLS。但是,類庫中的某些類型具有一個或多個不符合 CLS 的成員。這些成員能夠支持 CLS 中沒有的語言功能。在參考文檔中以及所有存在符合 CLS 的替換選項的情況中,不符合 CLS 的類型和成員也照此標識。有關 .NET Framework 類庫中類型的更多信息,請參見 .NET Framework 類庫參考。

相關詞條

熱門詞條

聯絡我們