共用方式為


5 一致性

符合性對下列物件感興趣:

  • 那些設計、實作或維護 C# 實作的實作。
  • 希望購買 C# 實作的政府或商業實體。
  • 想要提供 C# 一致性測試套件的測試組織。
  • 希望將程式代碼從一個 C# 實作移植到另一個程式代碼的程式設計人員。
  • 希望教標準 C# 的教育工作者。
  • 想要撰寫標準 C# 的作者。

因此,一致性最為重要,而此規格的大部分目標是指定讓 C# 實作和 C# 程式符合一致性的特性。

此規格中指定需求的文字會被視為規範 此規格中所有其他文字都是 資訊;也就是說,僅供資訊之用。 除非另有說明,否則所有文字都是規範的。 規範性文字會進一步細分為必要條件式類別。 有條件地規範 文字會指定功能及其選擇性功能的需求。 不過,如果提供該功能,其語法和語意應完全符合指定。

未定義的行為只會以 「未定義的行為」一詞來指出此規格。

嚴格符合的程式應該只使用此規格中所指定語言的功能, (這意味著嚴格合規的程式不能使用任何有條件的規範特徵。它不得產生任何未指定、未定義或實作定義行為的輸出。

符合 C# 實作應該接受任何嚴格符合的程式。

C# 的符合實作應提供和支援本規格中規範(但不是條件規範)部分中所述的所有類型、值、對象、屬性、方法和程式語法和語意。

符合 C# 的實作應解譯符合 Unicode 標準的字元。 符合實作應接受以UTF-8編碼形式編碼的編譯單位。

C# 的符合實作不應成功轉譯包含 #error 前置處理指示詞的來源,除非它是條件式編譯略過群組的一部分。

如果來源程式違反任何語法規則,或任何負面需求(定義為「應」或「不得」或「錯誤」或「警告」需求,則 C# 的實作至少會產生一則診斷訊息,除非該需求標示為「不需要診斷」字樣。

允許符合 C# 實作的其他類型、值、對象、屬性和方法,但前提是它們不會改變任何嚴格符合程序的行為。 需要符合實作才能診斷使用此規格不正確之延伸模組的程式。 不過,完成之後,他們可以編譯和執行這類程式。 (具有延伸模組的能力表示符合實作不會保留此規格中明確保留的標識碼。

符合 C# 的實作應隨附於定義所有實作定義特性的檔,以及所有延伸模組。

C# 的一致實作應支援附錄 C 中記載的類別庫。此規格中包含此連結庫的參考。

一個 符合的程式 是一個可接受的符合實作。 (允許此類計劃包含延伸或有條件的規範性特徵。