如何在C#中将{
或}
放入逐字字符串?
using System;
class DoFile {
static void Main(string[] args) {
string templateString = @"
\{{0}\}
{1}
{2}
";
Console.WriteLine(templateString, "a", "b", "c");
}
}
当我在逐字字符串中使用'{'或'}'时出现错误,我想这是因为'{'或'}'用于参数标记,例如{0}, {1}, {2}
。 \{
不起作用。
Unhandled Exception: System.FormatException: Input string was not in a correct format.
at System.String.ParseFormatSpecifier (System.String str, System.Int32& ptr, System.Int32& n, System.Int32& width, System.Boolean& left_align, System.String& format) [0x00000] in <filename unknown>:0
at System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) [0x00000] in <filename unknown>:0
答案 0 :(得分:16)
你只需要用双花括号进行转义..
分别为 {{
或}}
..
如下所示
string.Format("This is a format string for {0} with {{literal brackets}} inside", "test");
这是一个格式字符串,用于在
中使用{literal brackets}进行测试
答案 1 :(得分:8)
你放了两个像{{
或}}
。
答案 2 :(得分:0)
将{
和}
放在字符串中没有什么特别之处,它们不应该被转义。此外,转义字符\
在@分隔字符串中无效。
要以{
方法的格式使用文字}
和String.Format
,请将它们加倍。因此,您的格式字符串将是:
string templateString = @"
{{{0}}}
{1}
{2}
";