开发者

Code template implementation with C#

When I need code template, I can use Python as follows.

templateString = """
%s 
%s
%s
"""

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

How do I implement the equivalent with C#?

I tried

using System;

class DoFile {

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

But I got

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

Of course templateString = "{0}\n{1}\n{2}\n"; works, but I need to use multiple line template as the templateString is fo开发者_Go百科r generating a part of code, and it's really long.


you need to place an @ before the first quote

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

make it a verbatim-string-literal

In a verbatim string literal, the characters between the delimiters are interpreted verbatim, the only exception being a quote-escape-sequence. In particular, simple escape sequences and hexadecimal and Unicode escape sequences *are not processed* in verbatim string literals. A verbatim string literal may span multiple lines.


Do this instead (ad @ before the string constant):

class DoFile {

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


U can put @ before the variable name to get multiline strings.


You need to put @ before the quotation marks for the string, this will make it a verbatim string literal and this will still use all of the whitespace you use.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜