【问题标题】:How to show double qoutes with a variable when writing to a file in c#? [duplicate]在c#中写入文件时如何用变量显示双引号? [复制]
【发布时间】:2021-04-11 14:39:12
【问题描述】:

我正在尝试使用 C# 将字符串写入文件,我正在寻找的输出应该是这样的

<meta name="geo.region" content="Asia"/>

为了实现这一点,我已经尝试过这段代码,

writer.WriteLine(@"<meta name=""geo.region"" content="""+MetaTags.Region+"""/>");

但输出是,

<meta name="geo.region" content="Asia/>

“亚洲”后没有双引号

我也试过

 writer.WriteLine(@"<meta name=""geo.region"" content="""+MetaTags.Region+"""/>");

但它显示语法错误

【问题讨论】:

  • 你的代码示例目前是一样的
  • 使用适当的 XML 序列化程序而不是发出原始字符串。

标签: c# string file-writing


【解决方案1】:

在 C# 中,您可以在双引号之前使用反斜杠而不是双引号:

writer.WriteLine("<meta name=\"geo.region\" content=\"" + MetaTags.Region + "\"/>");

使用字符串插值:

writer.WriteLine($"<meta name=\"geo.region\" content=\"{MetaTags.Region}\"/>");

它会输出:

<meta name="geo.region" content="region"/>

更多细节:

Strings (C# Programming Guide)

String interpolation in C#

【讨论】:

  • 并不是说这个问题需要任何新的答案,因为它显然是重复的。但我认为你的意思是“反斜杠”,而不是“退格”。
【解决方案2】:

为了使用两个双引号在结果中产生一个双引号,字符串文字需要在前面加上@。所以这是一个语法错误:

"""/>"

但这不是:

@"""/>"

只需将@ 添加到您的字符串文字中,就像您已经为其他字符串文字所做的那样:

writer.WriteLine(@"<meta name=""geo.region"" content=""" + MetaTags.Region + @"""/>");

另外,如果这是 C# 的最新版本,您可以使用字符串插值对其进行一些清理:

writer.WriteLine($"<meta name=\"geo.region\" content=\"{MetaTags.Region}\"/>");

如果您更喜欢反斜杠而不是双双引号。

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2014-11-13
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多