首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

CLS (Common Language Specification) 詳解:跨語言互通規範、合規性檢查與 CLSCompliantAttribute

     編輯:關於C#

什麼是 CLS?

Common Language Specification (CLS) 是 CLR 定義的語言特徵子集,確保以不同語言編譯的組件能無縫互通。遵循 CLS 的類別,其公開成員可被任何支援 CLS 的語言存取。

核心目標

  • 定義所有語言共有的型別與功能子集。
  • 僅約束外部可見成員(public/protected),內部實作不受限。
  • 縮小規範範圍,降低語言實作負擔,同時保有完整表達力。

CLS 合規性標記

使用 System.CLSCompliantAttribute 標記組件或型別:

[assembly: CLSCompliant(true)]  // 組件層級
[CLSCompliant(false)]           // 型別/成員層級標記不合規
  • 建構子參數 true 表示合規,false 表示刻意不合規。
  • 編譯器會檢查標記為合規的程式碼,違規時發出警告/錯誤。

常見 CLS 規則(節錄)

規則說明
識別項大小寫公開成員不可僅靠大小寫區分
無號型別公開介面不可暴露 uint, ulong 等
指標公開簽章不可使用指標型別
運算子多載需提供同功能的命名方法(如 Add)
屬性/事件需符合命名模式

實務建議

  • 預設開啟組件層級 [assembly: CLSCompliant(true)]。
  • 需使用非 CLS 功能(如 uint 參數)時,在該成員標記 [CLSCompliant(false)]。
  • 內部邏輯可自由使用完整語言功能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved