2017-10-10 1 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 

Pourquoi la première ligne lance-t-elle une exception FormatException mais pas la seconde?Console C# WriteLine System.FormatException:

Répondre

7

La première ligne jette une exception parce qu'il essaie de remplir le {0} avec une valeur et il y a une accolade au } séquence d'échappement début (il devrait être }} pour éviter l'exception). Au début, le } est traité comme un code de formatage incomplet qui ne peut donc pas être traité.

La deuxième ligne n'a pas de valeur pour remplir la chaîne afin qu'elle s'imprime telle quelle.

+0

Ok, c'est OK pour le double '}', merci! –