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.
精彩评论