2017-10-10 72 views
1
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但不是第二行?C#控制檯WriteLine System.FormatException:

回答

7

第一行拋出一個異常,因爲它試圖填充{0}一個值,還有在開始的轉義括號}(應該是}}避免除外)。開始時的}被視爲不完整的格式化代碼,因此無法處理它。

第二行並不像填充字符串那樣沒有任何價值,所以它按原樣打印。

+0

好吧,雙'''是好的,謝謝! –