使用 C# 实现代码模板



当我需要代码模板时,我可以按如下方式使用Python。

templateString = """
%s 
%s
%s
"""
print templateString % ("a","b","c")

如何使用 C# 实现等效项?

我试过了

using System;
class DoFile {
    static void Main(string[] args) {
        string templateString = "
        {0}
        {1}
        {2}
        ";
        Console.WriteLine(templateString, "a", "b", "c");
    }
}

但我得到了

dogen.cs(86,0): error CS1010: Newline in constant
dogen.cs(87,0): error CS1010: Newline in constant
dogen.cs(88,0): error CS1010: Newline in constant

当然templateString = "{0}n{1}n{2}n";可以,但我需要使用多行模板,因为 templateString 用于生成一部分代码,而且它真的很长。

您需要在第一个引号之前放置一个@

templateString = @"
        {0}
        {1}
        {2}
        ";

使其成为逐字字符串文字

在逐字字符串文本中, 分隔符之间的字符是 逐字解释,唯一 例外是 引用-转义-序列。特别 简单的转义序列和 十六进制和统一码转义 序列 *未处理* 逐字字符串文字。逐字记录 字符串文本可以跨越多个 线。

改为这样做(在字符串常量之前使用 ad @):

class DoFile {
    static void Main(string[] args) {
        string templateString = @"
        {0}
        {1}
        {2}
        ";
        Console.WriteLine(templateString, "a", "b", "c");
    }
}

您可以将@放在变量名之前以获取多行字符串。

您需要在

字符串的引号前加上 @,这将使它成为逐字字符串文字,并且仍将使用您使用的所有空格。

相关内容

  • 没有找到相关文章

最新更新