在c#中写入文件时如何用变量显示双引号?

问题描述

我正在尝试使用 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+"""/>");

但它显示一个语法错误

解决方法

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

@

但这不是:

"""/>"

简单地将 @"""/>" 添加到您的字符串文字中,就像您已经为其他字符串文字所做的那样:

@

或者,如果这是一个足够新的 C# 版本,您可以使用字符串插值对其进行清理:

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

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

,

在 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#