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

C#字符串插值與逐字字符串區別:@$ 符號用法詳解

     編輯:程式設計綜合問答

常見誤區

代碼:

string name = "張三";
Console.WriteLine(@"Hello, {name}.");

輸出結果:`Hello, {name}.`(字面量,不會替換變量值)

符號含義對比

正確寫法

// 1. 純插值(最常用)
Console.WriteLine($"Hello, {name}.");           // Hello, 張三.

// 2. 包含反斜杠路徑時
string path = @"C:\Users\Admin";
Console.WriteLine($@"Path: {path}");             // Path: C:\Users\Admin

// 3. 複雜表達式
Console.WriteLine($"Next year: {DateTime.Now.Year + 1}");

編譯原理

插值字符串在編譯期被轉換為 `String.Format` 或 `String.Concat` 調用:

$"Hello, {name}."  →  String.Format("Hello, {0}.", name)

因此性能與手動拼接基本一致,但可讀性極強。

總結

  • `@""` 只處理轉義,不做變量替換
  • 需要變量嵌入必須用 `$""` 或 `$@""`
  • C# 6.0+ 才支持插值語法,舊版本請用 `String.Format`
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
前綴名稱功能示例輸出
@""逐字字符串禁用轉義序列,保留換行、反斜杠原意@"C:\Path" → C:\Path
$""插值字符串大括號內表達式求值嵌入$"Hi {name}" → Hi 張三
$@"" 或 @$""插值逐字字符串同時具備以上兩特性$@"Path: {path}" → Path: C:\Dir