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={");
应该可以处理简单字符串,而不必使用双大括号。谢谢,我明白了。关键是“使用{}模板时,{或}必须转义”。可能重复