程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 語言標准--2.4.2 標識符

C# 語言標准--2.4.2 標識符

編輯:C#入門知識

本節給出的標識符規則完全符合 Unicode 標准附件 15 推薦的規則,但以下情況除外:允許將下劃線用作初始字符(這是 C 編程語言的傳統),允許在標識符中使用 Unicode 轉義序列,以及允許“@”字符作為前綴以使關鍵字能夠用作標識符。

identifier:(標識符:)
available-identifier(可用的標識符)
@   identifier-or-keyword(@   標識符或關鍵字)
available-identifier:(可用的標識符:)
不是“關鍵字”的“標識符或關鍵字”
identifier-or-keyword:(標識符或關鍵字:)
identifier-start-character   identifier-part-charactersopt(標識符開始字符   標識符部分字符可選)
identifier-start-character:(標識符開始字符:)
letter-character(字母字符)
_(下劃線字符 U+005F
identifier-part-characters:(標識符部分字符:)
identifier-part-character(標識符部分字符)
identifier-part-characters   identifier-part-character(標識符部分字符   標識符部分字符)
identifier-part-character:(標識符部分字符:)
letter-character(字母字符)
decimal-digit-character(十進制數字字符)
connecting-character(連接字符)
combining-character(組合字符)
formatting-character(格式設置字符)
letter-character:(字母字符:)
類 Lu、Ll、Lt、Lm、Lo 或 Nl 的 Unicode 字符
表示類 Lu、Ll、Lt、Lm、Lo 或 Nl 的字符的 unicode 轉義序列
combining-character:(組合字符:)
類 Mn 或 Mc 的 Unicode 字符
表示類 Mn 或 Mc 的字符的 unicode 轉義序列
decimal-digit-character:(十進制數字字符:)
類 Nd 的 Unicode 字符
表示類 Nd 的字符的 unicode 轉義序列
connecting-character:(連接字符:)
類 Pc 的 Unicode 字符
表示類 Pc 的字符的 unicode 轉義序列
formatting-character:(格式設置字符:)
類 Cf 的 Unicode 字符
表示類 Cf 的字符的 unicode 轉義序列

有關上面提到的 Unicode 字符類的信息,請參見《Unicode 標准 3.0 版》的第 4.5 節。

有效標識符的例子包括“identifier1”、“_identifier2”和“@if”。

符合規范的程序中的標識符必須符合由“Unicode 標准化格式 C”(按“Unicode 標准附錄 15”中的定義)定義的規范格式。當遇到非“標准化格式 C”格式的標識符時,怎樣處理它可由 C# 的具體實現確定,但是不要求診斷。

使用前綴“@”可以將關鍵字用作標識符,這在與其他編程語言建立接口時很有用。字符 @ 並不是標識符的實際組成部分,因此在其他語言中可能將此標識符視為不帶前綴的正常標識符。帶 @ 前綴的標識符稱作逐字標識符。允許將 @ 前綴用於非關鍵字的標識符,但是(從代碼書寫樣式的意義上)強烈建議不要這樣做。

示例:

class @class



{



   public static void @static(bool @bool) {



      if (@bool)



         System.Console.WriteLine("true");



      else



         System.Console.WriteLine("false");



   }   



}



class Class1



{



   static void M() {



      cl\u0061ss.st\u0061tic(true);



   }



}

定義一個名為“class”的類,該類具有一個名為“static”的靜態方法,此方法帶一個名為“bool”的參數。請注意,由於在關鍵字中不允許使用 Unicode 轉義符,因此標記“cl\u0061ss”是標識符,與“@class”標識符相同。

兩個標識符如果在按順序實施了下列轉換後相同,則被視為相同:

  • 如果使用了前綴“@”,移除它。
  • 將每個“unicode 轉義序列”轉換為它的對應 Unicode 字符。
  • 移除所有“格式化字符”。

包含兩個連續下劃線字符 (U+005F) 的標識符被保留供具體實現使用。例如,一個實現可以設置它自己的以兩個下劃線開頭的擴展關鍵字。



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved