首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 字符串三種寫法區別:普通、逐字、插值 —— 實際業務中插值字符串最強

     編輯:程式設計綜合問答

三種語法對比

語法名稱特點轉義插值
"abc"普通字符串需轉義 `\n` `\t` `\"` `\\`支援不支援(需 `String.Format`)
@"abc"逐字字符串原樣輸出,換行、反斜桿無需轉義,雙引號寫 `""`不支援(除 `""`)不支援
$"abc"插值字符串編譯期轉為 `String.Format`,大括號內直接寫變量/表達式支援 `\n` 等**原生支援**

實戰對比

string name = "Jack"; int age = 20;

// 1. 普通 + Format
string s1 = String.Format("Name: {0}\nAge: {1}", name, age);

// 2. 逐字 + Format(多行文本友好)
string s2 = String.Format(@"Name: {0}
Age: {1}", name, age);

// 3. 插值(最推薦,可讀、效能好、智能提示全)
string s3 = $"Name: {name}\nAge: {age}";

// 進階:格式化、條件、對齊
string s4 = $"Name: {name,10} | Age: {age:D3} | Adult: {(age>=18 ? \"Yes\" : \"No\")}";

編譯原理

  • `$""` 編譯為 `String.Format` 呼叫,零運行時解析開銷。
  • 逐字字符串 `@""` 編譯為帶換行的常量,適合 SQL、JSON、正則、多行文本模板。

最佳實踐

  • 單行、需插值 → **`$""`**。
  • 多行、含大量反斜桿/引號、無插值 → **`@""`**。
  • 需編譯期常量(屬性參數、switch case) → 僅能用普通/逐字字符串,`$""` 非常量。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved