Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 for generating a part of code, and it's really long.

like image 956
prosseek Avatar asked Jul 25 '26 22:07

prosseek


1 Answers

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.

like image 176
Caspar Kleijne Avatar answered Jul 28 '26 12:07

Caspar Kleijne