在字串前加 @,關閉逸出序列處理,反斜線、換行等字元按原意解讀:
// 檔案路徑
string path = @"C:\Users\Docs\File.txt"; // 免雙重反斜線
// 多行字串 (SQL、XML、JSON)
string sql = @"SELECT Id, Name
FROM Users
WHERE Active = 1
ORDER BY Name";
// 包含雙引號
string json = @"{""name"": ""John""}"; // 雙引號以雙寫表示
在識別項前加 @,可使用 C# 保留字作為變數、類別、方法、命名空間名稱:
class @class { public void @static(int @int) { } }
var @for = 10;
@class c = new @class();
c.@static(@for);
常見於程式碼產生器、跨語言互通 (如 VB.NET 類別有 Property 方法),或為了語意清晰而必須使用關鍵字時。
C# 6.0+ $ 插值字串中,@ 仍用於逐字模式:
var path = $@"C:\Users\{userName}\Documents"; // 逐字 + 插值
var multi = $@"Line1: {val}
Line2: {val2}"; // 多行插值
| 用法 | 語法 | 範例 | 適用場景 |
|---|---|---|---|
| 逐字字串 | @"..." | @"C:\Path" | 路徑、多行文字、正則運算式 |
| 關鍵字識別項 | @keyword | var @class = 1; | 程式碼產生、跨語言互通 |
| 逐字插值 | $@"..." | $@"Path: {p}" | 多行模板、包含反斜線的插值 |