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.
War es hilfreich?

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.

  1. Gründlich Unit-Test Ihrer öffentlichen Schnittstellen zu sicher sein, dass die Saiten richtig formatiert werden.
  2. 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.
  3. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top