C#Console WriteLine System.FormatException:

时间:2017-10-10 11:24:22

标签: c# format

string CPP_NAME_SPACE = "test"
System.Console.WriteLine("} // namespace {0}", CPP_NAME_SPACE); // FormatException

System.Console.WriteLine("} // namespace {0}"); // normal

System.Console.WriteLine("// namespace {0}", CPP_NAME_SPACE); // normal

为什么第一行抛出FormatException但不抛出第二行?

1 个答案:

答案 0 :(得分:7)

第一行会引发异常,因为它尝试使用值填充{0}并且在开头有一个未转义的大括号}(它应该是{{ 1}}以避免异常)。 <{1}}开头的}}被视为格式代码,不完整,因此无法处理。

第二行没有因为没有填充字符串的值所以它按原样打印。