【发布时间】:2011-04-02 02:17:56
【问题描述】:
C# 中的字符串是否有heredoc 表示法,最好是我不必转义任何东西(包括双引号,这是逐字字符串中的一个怪癖)?
【问题讨论】:
C# 中的字符串是否有heredoc 表示法,最好是我不必转义任何东西(包括双引号,这是逐字字符串中的一个怪癖)?
【问题讨论】:
正如其他人所说,没有。
虽然我个人会避免首先创建它们 - 我会改用嵌入式资源。它们很容易使用,如果您有一个实用方法可以从调用程序集中将命名的嵌入式资源作为字符串加载(可能假设为 UTF-8 编码),这意味着:
【讨论】:
nowdoc 语法也是如此?
即使它不支持 HEREDOC,您仍然可以使用 Verbatim 字符串执行以下操作:
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);
【讨论】:
不,C# 中没有“HEREDOC”样式的字符串文字。
C# 只有两种类型的字符串字面量:
@-quoted:双引号需要加倍转义字符串字面量是
string类型,可以写成两种形式,quoted 和@-quoted。
【讨论】: