int age = 30;
string msg = $"Hello, {nam">

C# 字符串内插($)的用法 - 格式化字符串的现代方式

来源:这里教程网 时间:2026-02-21 17:38:51 作者:

C# 字符串内插($)是 C# 6.0 引入的语法糖,让字符串拼接和格式化更直观、可读性更强,也比

string.Format
+
拼接更安全、更灵活。

基本用法:用 $ 开头,花括号内写表达式

在字符串前加 $,然后在字符串中用

{}
包裹变量或表达式:

示例:

string name = "Alice";<br>int age = 30;<br>string msg = $"Hello, {name}. You are {age} years old.";

结果:
"Hello, Alice. You are 30 years old."

支持任意合法表达式,比如:

{name.ToUpper()}
{age * 2}
{DateTime.Now:yyyy-MM-dd}

支持格式说明符和对齐控制

在表达式后加冒号

:
,可指定标准或自定义格式;加逗号
,
可指定最小宽度与对齐方向:

{price:C2}
→ 货币格式,保留两位小数,如
$19.99
{value:D5}
→ 十进制补零至 5 位,如
00123
{text,-10}
→ 左对齐、占 10 字符宽(不足右补空格)
{text,10}
→ 右对齐、占 10 字符宽(不足左补空格)

处理大括号、转义和多行字符串

要显示字面量

{
}
,需用两个大括号:
{{
}}

内插字符串天然支持多行(配合 verbatim 字符串 @),但注意 $ 必须在 @ 前:

$@"Name: {name}<br>Age: {age}<br>Notes: {{Important}}"

不能写成

@$"..."
—— 顺序错误会编译失败。

性能与注意事项

内插字符串在编译期会被转换为

string.Format
或更优的
string.Concat
,简单场景下性能接近甚至优于手动拼接。

避免在循环内频繁拼接大量字符串(考虑
StringBuilder
表达式中不要放副作用代码(如
{i++}
),行为不易预测
调试时内插字符串的值可在 VS 中直接悬停查看,非常方便

基本上就这些。用熟了,$ 字符串会让你写格式化逻辑时少出错、少查文档、也更顺手。

相关推荐