You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C#中如何无需手动转义直接使用含双引号的字符串?

C# 中避免手动转义双引号的字符串处理方案

好的,直接给你梳理C#里能自动处理双引号转义的几种原生方案,完全不用手动逐个加转义符:

  • 逐字字符串(Verbatim Strings):你已经提到的@开头的写法其实就是C#原生支持的方案,它会原封不动解析字符串内容,唯一需要注意的是字符串里的双引号要写成两个连续的双引号(""),比如:

    string t = @"Lorem ""Ipsum"" dummy text with ""multiple"" quotes";
    

    这种方式从C#早期版本就支持,兼容性拉满。

  • 原始字符串字面量(Raw String Literals,C# 11+):这是C# 11新增的特性,完美匹配你的需求——不需要任何转义操作,直接把包含双引号的内容放进去就行。你可以用3个及以上的双引号来包裹字符串,只要内部的双引号数量不超过包裹的数量,就不会被解析为结束标记,比如:

    // 用三个双引号包裹常规内容
    string t = """Lorem "Ipsum" dummy text with "any number" of quotes""";
    
    // 如果内容里有三个连续双引号,就用四个双引号包裹,以此类推
    string t2 = """"Lorem """Ipsum""" dummy text"""";
    

    这种方式和PHP单引号的体验几乎一致,完全不用手动处理转义,用起来特别省心。

总结一下:如果你的项目能用到C# 11及以上版本,优先用原始字符串字面量;如果需要兼容旧版本,就用逐字字符串,这两种都是C#原生支持的方案,不需要额外的方法或关键字。

内容的提问来源于stack exchange,提问作者T.Todua

火山引擎 最新活动