Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在下面的字符串中需要double{但需要single}?_C# - Fatal编程技术网

C# 为什么在下面的字符串中需要double{但需要single}?

C# 为什么在下面的字符串中需要double{但需要single}?,c#,C#,为什么在下面的字符串中需要两个{而需要一个} static void Main() { Console.Write("a={0}, b={1}, c={{", 1, 2); foreach (var i in Enumerable.Range(1, 5)) Console.Write("{0},",i); Console.WriteLine("\b}"); } 因为当您在字符串中使用string.Format()或Console.Write()和“{0}”的模板方法时

为什么在下面的字符串中需要两个
{
而需要一个
}

static void Main()
{

    Console.Write("a={0}, b={1}, c={{", 1, 2);
    foreach (var i in Enumerable.Range(1, 5)) Console.Write("{0},",i);
    Console.WriteLine("\b}");
}

因为当您在字符串中使用
string.Format()
Console.Write()
“{0}”
的模板方法时,括号是一个特殊符号。因此,如果要使用实际的括号,需要通过执行
“{{{{code>”来对其进行转义,这将输出一个
{

,滚动到标题为转义括号的部分

简言之,大括号对字符串格式化程序有特殊意义,如果您希望在输出字符串中使用文字大括号,则需要对其进行转义。类似于在字符串中转义双引号等

Console.Write("a={0}, b={1}, c={{", 1, 2);
您使用的此方法不是获取字符串,而是使用String.Format(),它要求您的字符串使用大括号进行格式化

Console.Write("a=1, b=2, c={");

应该可以处理简单字符串,而不必使用双大括号。

谢谢,我明白了。关键是“使用{}模板时,{或}必须转义”。可能重复