在 C# 中写入文件时如何显示带变量的双引号?

How to show double qoutes with a variable when writing to a file in 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+"""/>");

但显示语法错误

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

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

"""/>"

但这不是:

@"""/>"

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

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

或者,如果这是足够新的 C# 版本,您可以使用字符串插值稍微清理一下:

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

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