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文字是
string
types,可以用两种forms书写, 引号和@
引用 。