Code template implementation with C#

大城市里の小女人 提交于 2019-12-07 14:19:50

问题


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.


回答1:


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.




回答2:


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");
    }
}



回答3:


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




回答4:


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.



来源:https://stackoverflow.com/questions/5996218/code-template-implementation-with-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!