Format Saiten- Kompilierung Prüfung
-
19-09-2019 - |
Frage
Gibt es eine Möglichkeit, den Format-String bei der Kompilierung zu überprüfen?
Beispiel:
Console.WriteLine("{0} is a really {1} site", "stackoverflow.com", "cool");//this will run
// Dies wird eine Ausnahme geben als nur ein Argument angegeben ist
Console.WriteLine("{0} is a really {1} site", "stackoverflow.com");
Exception:"Index (zero based) must be greater than or equal to zero and less than the size of the argument list."
und wenn Format-String ist nicht im richtigen Format (das heißt fehlt die "}" nach 1 hier)
Console.WriteLine("{0} is a really {1 site", "stackoverflow.com","cool");
Exception: Input string was not in a correct format.
Lösung
Nein, können Sie Kompilierung-Verifikation hier nicht hinzufügen. Dies ist einer der Abwärts Seiten zu Ressourcen-Strings und Formatierung Saiten. Sie können ein paar Dinge tun, um Ihr Problem zu mildern.
- Gründlich Unit-Test Ihrer öffentlichen Schnittstellen zu sicher sein, dass die Saiten richtig formatiert werden.
- Verwenden Sie Tools wie ReSharper , die statische Analyse durchführen können und wissen, dass Sie über diese Probleme, bevor Sie führen Sie Ihre Anwendung.
- Die Dinge sind besser zu dritt.
Andere Tipps
Nein, es gibt keine Möglichkeit, dies zu tun. Unit-Tests löst dieses Problem.
Während nicht wirklich kompilieren Zeitprüfung, ReSharper können Sie in Visual Studio warnen wenn die Anzahl der Argumente ist falsch oder das Format-String ist im falschen Format.