C#插值字符串中大括号表示方法

在 C# 的插值字符串($ 开头的字符串)中,表示大括号需要使用双重大括号

1. 基本用法

csharp 复制代码
// 表示单个大括号
string result1 = $"{{";          // 输出: {
string result2 = $"}}";          // 输出: }
string result3 = $"{{}}";        // 输出: {}

// 表示大括号包围的文本
string result4 = $"{{Hello}}";   // 输出: {Hello}

2. 结合插值表达式

csharp 复制代码
string name = "张三";
int score = 95;

// 正确:输出 {张三的成绩是95}
string message1 = $"{{{name}的成绩是{score}}}";

// 输出 JSON 格式
string json = $"{{ \"name\": \"{name}\", \"score\": {score} }}";
// 输出: { "name": "张三", "score": 95 }

3. 更复杂的例子

csharp 复制代码
// 输出格式化的大括号内容
for (int i = 1; i <= 3; i++)
{
    Console.WriteLine($"{{{i}}}");  // 输出: {1}, {2}, {3}
}

// 输出代码片段
string code = @$"public void Test()
{{
    Console.WriteLine(""Hello"");
}}";

// 字符串内同时使用插值和转义大括号
int x = 10, y = 20;
string result = $"和是 {{{x + y}}}";  // 输出: 和是 {30}

4. 注意事项

  • 奇数个大括号需要特别注意:

    csharp 复制代码
    // 错误!会编译错误,因为三个大括号解析有问题
    // string error = $"{{{";
    
    // 正确写法
    string correct = $"{{{"";  // 输出: {{
  • 顺序很重要 :从左到右解析,一对 {``{ 转义为一个 {

5. 实际应用场景

csharp 复制代码
// 生成模板字符串
string template = $"{{{0}}}";  // 可用于 string.Format 的模板
string formatted = string.Format(template, "值");  // 输出: {值}

// 生成 XML/HTML 属性
string value = "test";
string html = $"<div class=\"{value}\">{{content}}</div>";
// 输出: <div class="test">{content}</div>

记住规则 :在插值字符串中,使用 {``{ 表示字面量的 {}} 表示字面量的 }

相关推荐
子兮曰12 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰12 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
小羊没烦恼!12 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万12 小时前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝12 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
神仙别闹12 小时前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
三十而立洋13 小时前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁13 小时前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
kybs199115 小时前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
汉堡大王952715 小时前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端