C#中的Heredocstring

在C#中有string的heredoc符号,最好是我不必逃避任何东西 (包括双引号,这是在逐字string中的怪癖)?

正如其他人所说,没有。

就个人而言,我会尽量避免创build它们 – 我将使用embedded式资源。 他们很容易处理,如果你有一个实用的方法来从调用程序集加载一个命名的embedded式资源作为一个string(可能假设UTF-8编码),这意味着:

  • 如果你的embedded式文档是像SQL,XSLT,HTML等,你会得到语法高亮,因为它确实一个SQL(等)文件
  • 你不必担心任何逃跑
  • 您不必担心缩进您的文档或使您的C#代码看起来丑陋
  • 如果相关的话,你可以用“正常”的方式使用这个文件(例如,把它看作一个HTML页面)
  • 您的数据与您的代码分开

那么即使它不支持HEREDOC的,你仍然可以使用逐字string来做如下的事情:

string miniTemplate = @" Hello ""{0}"", Your friend {1} sent you this message: {2} That's all!"; string populatedTemplate = String.Format(miniTemplate, "Fred", "Jack", "HelloWorld!"); System.Console.WriteLine(populatedTemplate); 

从: http ://blog.luckyus.net/2009/02/03/heredoc-in-c-sharp/

不,C#中没有“HEREDOC”风格的string字面值。

C#只有两种types的string文字:

  • 正则文字,有许多必要的转义序列
  • 逐字逐字@引用:双引号需要加倍逃脱

参考

  • csharpindepth.com – 通用文章 – string
  • MSDN – C#程序员参考 – string

    string文字是stringtypes,可以用两种forms书写, 引号@引用