string.Format
ist eine sehr riskante Methode. Es gibt viele Dinge, die schief gehen könnten, ohne irgendwelche Kompilierungsfehler:
Ich suche nach einer Möglichkeit, diese Probleme in der Kompilierungszeit zu finden. Wenn ich mich richtig erinnere, finde Resharper einige dieser Fehler, aber es ist zu reich für mein Blut.
Nach einigen Nachforschungen habe ich herausgefunden, dass FxCop bereits eine Regel enthält für die Überprüfung des String-Formats ( Usage Rules\Provide correct arguments to formatting methods
). Es ist sogar das Beispiel in @Sklivvz Antwort identifiziert. Leider:
Console.Write
, Console.WriteLine
, string.Format
& amp; %Code%. Ich habe es geschafft, (mit Reflector) zu optimieren, um auch StringBuilder.AppendFormat
abzudecken, aber ich bin mir ziemlich sicher, dass es mit MS EULA im Widerspruch steht ( "Sie dürfen nicht zurückentwickeln, dekompilieren oder disassemblieren. .. "). So können Sie FxCop sicher zum Testen der Zeichenfolgenformatierung in Ihren .NET 2.0-Anwendungen verwenden.
Für alle, die mit aktuelleren Versionen arbeiten, Ich habe eine StyleCop-Regel geschrieben , die Zeichenfolgenliterale für gängige Formatfehlermuster überprüft. Es ist weit davon entfernt, perfekt zu sein und viele falsche Positive hervorzubringen, aber deckt immer noch alles ab.
Ich möchte das neue FxCop SDK für eine umfassendere Lösung überprüfen.
Ich werde meine Schlussfolgerungen hier veröffentlichen.
Resharper wird Ihnen helfen, es zu identifizieren. Aber es ist sehr schwer und muss vorsichtig verwendet werden, wenn Sie an einer bestehenden Anwendung arbeiten.
Tags und Links c# visual-studio string-formatting vsx