首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 逸出字元、@逐字字串與字串插值完整指南

     編輯:關於C#

逸出字元完整對照表

逸出序列字元Unicode說明
\'單引號U+0027字元常值內使用
\"雙引號U+0022字串常值內使用
\\反斜線U+005C路徑常見
\0NullU+0000字串結束標記
\a警示音U+0007Console.Beep()
\b退格U+0008
\f換頁U+000C
\n換行U+000ALF, Unix/Linux
\r歸位U+000DCR, Mac OS 9
\t定位鍵U+0009Tab
\v垂直定位U+000B
\uXXXXUnicode 16-bitU+XXXX4 位十六進位
\UXXXXXXXXUnicode 32-bitU+XXXXXXXX8 位十六進位
\xHH十六進位-2-4 位,不建議使用

@逐字字串

// 關閉逸出處理,僅 "" 代表雙引號
string path = @"C:\Users\Name\Documents\File.txt";
string sql = @"SELECT * FROM Users 
WHERE Name = ""John"" 
  AND Age > 18";
string json = @"{ ""name"": ""John"", ""age"": 30 }";

// 注意:@ 字串內換行會保留換行字元 (含 \r\n)

字串插值 (C# 6+) - 現代首選

string name = "John";
int age = 30;
// 基本
string s1 = $"Name: {name}, Age: {age}";
// 格式化
string s2 = $"Age: {age:D3}"; // "Age: 030"
// 條件運算式
string s3 = $"Status: {(age >= 18 ? "Adult" : "Minor")}";
// 逸出大括號
string s4 = $"{{Literal braces}}: {name}"; // "{Literal braces}: John"
// 結合 @ 逐字字串 (C# 8+)
string sql = $@"SELECT * FROM Users WHERE Name = ""{name}""";

字串連接效能比較

方式適用場景效能備註
+ / String.Concat少量、編譯期常數好 (常數摺疊)
StringBuilder大量、迴圈、未知長度最佳預估容量 new StringBuilder(1024)
插值字串一般格式化優 (C# 10+ DefaultInterpolatedStringHandler)零配置、可自訂處理器
string.Join集合連接好避免手寫迴圈

常見錯誤與最佳實務

  • 檔案路徑:優先使用 Path.Combine / Path.Join 而非手工拼接
  • SQL/HTML/JSON:切勿字串拼接,使用參數化查詢、編碼器、序列化器
  • 跨平台換行:使用 Environment.NewLine 或 \n (現代 .NET 統一處理)
  • 原始字串常值 (C# 11+):"""...""" 多行、無逸出、縮進自動移除

逸出字元表
逐字字串
插值字串

本文對應《叩響 C# 之門》第 2.3.6-2.3.8 節逸出字元、@控制符、+運算符教學內容

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved