關鍵字為編譯器預先定義的保留字,掃描原始碼時觸發特定語法行為,不可作為識別碼(類別、方法、變數名稱)。
若確需使用關鍵字作識別碼,可加 @ 前綴:
int @class = 10; // 合法
string @as = "test"; // 合法
編譯器會移除 @ 視為普通識別碼,IL 中不保留 @。
| 類別 | 關鍵字(部分) |
|---|---|
| 型別 | bool, byte, char, decimal, double, float, int, long, object, sbyte, short, string, uint, ulong, ushort, void |
| 修飾詞 | abstract, async, const, event, extern, internal, new, override, partial, readonly, sealed, static, unsafe, virtual, volatile |
| 流程控制 | break, continue, do, else, for, foreach, goto, if, return, switch, while |
| 例外處理 | catch, finally, throw, try |
| 命名空間/型別宣告 | class, delegate, enum, interface, namespace, struct |
| 存取/運算子 | as, is, typeof, sizeof, checked, unchecked, default, nameof, stackalloc |
| 查詢/Lambda | from, where, select, group, orderby, join, let, into, ascending, descending, by, equals, on |
| 其他 | base, this, null, true, false, ref, out, in, params, lock, using, fixed |
完整清單請參考 Microsoft 官方文件「C# Keywords」。
@ 逃逸,降低可讀性;改用語意化名稱(如 className 而非 @class)。record、init、required),升級專案時注意衝突。