字符串插值在单词周围添加引号[重复]
Posted
技术标签:
【中文标题】字符串插值在单词周围添加引号[重复]【英文标题】:String interpolation add quotes around a word [duplicate] 【发布时间】:2020-02-02 17:09:17 【问题描述】:我正在尝试在 eventTime
变量之间添加引号。但是下面的两个代码语句都会出现编译时错误。
代码:
string message = string.Format("Your event # 0, is started at "1" in Texas.", eventId, eventTime);
string message = $"Your event # eventId, is started at " + eventTime + " in Texas.";
预期输出:
Your event # 1, is started at "2" in Texas.
这可能很简单,但我找不到合适的语法。
任何帮助都会很棒。
注意:
因为不赞成票,我知道我必须转义双引号,所以我关注this 帖子并试图转义,但失败了。所以我发布了这个问题以了解正确的语法。感谢大家,这帮助我学习,所以下面是我的答案:
使用verbatim string literal。
string message = $@"Your event # eventId, is started at ""eventTime"" in Texas.";
希望能帮助别人。
【问题讨论】:
引号前缺少反斜杠转义。 这不是字符串插值问题。您需要做的就是转义字符串中的引号。 $@"您的活动 #eventId,开始于德克萨斯州的“eventTime”。" 为什么人们不赞成这个问题?它可能是重复的,但问题很清楚。问题shouldn't be downvoted because they are duplicates,当然不应该仅仅因为你认为 OP 应该知道答案就拒绝投票...... @John ,感谢您的建议,但我认为这个问题部分重复,我知道转义双引号但不知道要正确添加它。顺便说一句,我自己找到了解决方案并在问题中添加为答案,因为我无法将其添加为答案。 【参考方案1】:像这样使用转义字符\
:
string message = $"Your event # eventId, is started at \"eventTime\" in Texas.";
message
然后包含
Your event # 1, is started at "2" in Texas.
鉴于eventId == 1
和eventTime == 2
。
转义序列\"
标记了字符串的引号部分,因此不会终止它。
【讨论】:
谢谢,谢谢! ,我看到了这个,但没有使用这个,因为我在verbatim string literal 之后。我已将解决方案添加到自己的问题中,因为我无法将其添加为答案,因为有人将其标记为重复。 @BluE 不确定您的意思...“输出”在控制台输出中?还是您正在查看 VS 调试器中的字符串?有关正确输出的示例,请参阅 this。 @ThomasFlinkow 我指的是 Rider 即时窗口,它显然打印了不同(错误)的输出。【参考方案2】:您需要转义字符 请点击此链接 https://devblogs.microsoft.com/csharpfaq/what-character-escape-sequences-are-available/
string message = string.Format("Your event # 0, is started at \"1\" in Texas.", eventId, eventTime);
【讨论】:
以上是关于字符串插值在单词周围添加引号[重复]的主要内容,如果未能解决你的问题,请参考以下文章