本節給出的標識符規則完全符合 Unicode 標准附件 15 推薦的規則,但以下情況除外:允許將下劃線用作初始字符(這是 C 編程語言的傳統),允許在標識符中使用 Unicode 轉義序列,以及允許“@”字符作為前綴以使關鍵字能夠用作標識符。
_(下劃線字符 U+005F)有關上面提到的 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”標識符相同。
兩個標識符如果在按順序實施了下列轉換後相同,則被視為相同:
@”,移除它。包含兩個連續下劃線字符 (U+005F) 的標識符被保留供具體實現使用。例如,一個實現可以設置它自己的以兩個下劃線開頭的擴展關鍵字。