在c#中写入文件时如何用变量显示双引号? [复制]
Posted
技术标签:
【中文标题】在c#中写入文件时如何用变量显示双引号? [复制]【英文标题】:How to show double qoutes with a variable when writing to a file in c#? [duplicate] 【发布时间】: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 序列化程序而不是发出原始字符串。 【参考方案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\"/>");
如果您更喜欢反斜杠而不是双双引号。
【讨论】:
以上是关于在c#中写入文件时如何用变量显示双引号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章