【问题标题】:What is a verbatim string? [duplicate]什么是逐字字符串? [复制]
【发布时间】:2013-05-19 13:30:33
【问题描述】:

从 ReSharper,我知道

var v = @"something";

使 v 成为一个称为逐字字符串的东西。这是什么以及使用它的常见场景是什么?

【问题讨论】:

  • 路径几乎是我唯一一次使用逐字字符串。 Resharper 建议将 all 字符串文字转换为逐字字符串对我来说似乎很愚蠢。
  • @CodyGray AFAIK,ReSharper 仅将其作为工具提供(它不建议使用),并且仅当字符串包含反斜杠时,这对我来说更有意义。

标签: c#


【解决方案1】:

在逐字字符串中,转义序列(例如 "\n" 换行符)将被忽略。这有助于您键入包含反斜杠的字符串。

字符串也可以扩展到多行,例如:

var s = @"
line1
line2";

字符串的显示方式与您在源代码中键入的方式相同,带有换行符,因此您不必担心缩进、换行等问题。

要在逐字文字中使用引号,只需将它们加倍:

@"This is a string with ""quotes""."

【讨论】:

  • 感谢您的额外解释。
【解决方案2】:

这意味着不需要转义特殊字符,因为您通知编译器期望特殊字符并忽略它们。一个常见的用例可能是指定一个连接字符串:

string sqlServer = @"SERVER01\SQL"; 

这是完全有效的,而不是在正常使用中反斜杠被视为转义字符。

【讨论】:

  • 为了清楚起见(因为我刚刚回答了一个引用这个的问题)虽然这个答案说“不需要转义特殊字符”,但如果你的字符串包含双引号字符,它仍然需要通过连续放置两个来进行转义。
猜你喜欢
  • 1970-01-01
  • 2016-09-15
  • 2011-02-22
  • 2012-03-31
  • 2011-03-19
  • 2019-05-05
  • 2011-02-26
  • 1970-01-01
  • 2013-12-13
相关资源
最近更新 更多