【问题标题】: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 ,感谢您的建议,但我认为这个问题部分重复,我知道转义双引号但不知道要正确添加它。顺便说一句,我自己找到了解决方案并在问题中添加为答案,因为我无法将其添加为答案。

标签: c# double-quotes string-interpolation


【解决方案1】:

像这样使用转义字符\

string message = $"Your event # {eventId}, is started at \"{eventTime}\" in Texas.";

message 然后包含

Your event # 1, is started at "2" in Texas.

鉴于eventId == 1eventTime == 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);

【讨论】:

    猜你喜欢
    • 2018-11-17
    • 2017-10-07
    • 2011-01-27
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多