Frage

lief ich den VS 2008 Code-Analyse-Tool gegen ein Objekt I erstellt und erhielt folgenden Vorschlag ...

  

Warning 147 CA1021: Microsoft.Design   Betrachten wir ein Design, das nicht der Fall ist:   verlangen, dass ‚Returnvalue‘ ein aus seinem   Parameter.

Ich finde, „out“ Parameter eher nützlich und nicht erkennen, dass sie als eine auf Design Praxis runzelte die Stirn betrachtet wurden. Ich wollte wissen, ob jemand etwas Licht auf dem Grund Schuppen konnte, dass ich diese Warnung erhalten haben? Wenn es schlechte Praxis? Warum? und was wäre eine gute Praxis?

Ich schätze irgendwelche Ratschläge.

War es hilfreich?

Lösung

Jede Code-Analyse-Warnung hat Dokumentation zugeordnet, die Sie durch highligting die Warnung zugreifen und Drücken von F1 . Sie können auch auf der Position der rechten Maustaste um Hilfe zu erhalten.

In jedem Fall ist hier die Dokumentation, die diese besondere Warnung erklärt .

Ich würde sagen, dass es ein paar Fälle sind Parameter sind immer noch eine gute Wahl, wenn es aus - vor allem wenn es um die TryParse Codierung Idiom kommt, weil es ein solches ist gut etablierte Art und Weise, Dinge zu tun, dass die meisten Menschen sollen es verstehen

In der allgemeinen Gebrauch, aber es gibt bessere, objektorientierte Lösungen für mehrere Rückgabewerte.

Andere Tipps

Ich lief einmal selbst Code-Analyse an meinem Projekt. Auch habe ich viele interessante Vorschläge, ich sehr kurz drehte diese ab. Viele der Vorschläge sind von religiöser Natur, können Sie es auf diese oder andere Weise zu tun, eine Frage des Stils und nicht eine schlechte Praxis.

Um Ihre Situation. Wenn Sie nur einen Rückgabeparameter haben, dann schicken Sie es aus der Funktion zurück.

Wenn Sie auch einen Return-Code haben, der die Rückkehr Platz einnimmt, sollten Ausnahmen mit dem Anrufer Code Betriebsfehler zu informieren.

Wenn Sie viele Parameter zurück, die eng miteinander verbunden sind, stellen eine Klasse / Struktur um sie zusammenzuhalten und sie als Paket zurück.

Viele der Code-Analyse-Warnungen zu mir zu sein scheinen relevant API-Code zu schreiben, die dritten Parteien verwenden. Ihre Regel mit ‚out‘ Parameter ist ein klassischer Fall. Teil der Grund, sie nicht zu verwenden, weil viele andere Programmierer nicht über sie wissen

Wenn sie nicht übereinstimmen, was Sie schreiben, wechseln Sie dann die Codeanalyse-Regeln aus, die dich nicht gerecht wird. Persönlich neige ich dazu, auszuschalten Namensgebung, Portabilität und Interoperabilität Regeln, da sie nicht relevant für die Art von Code, die ich schreibe.

Ich habe diese spezifische Warnung ausgeschaltet in den meisten meiner Projekte. Da weiß ich, dass, wenn ich einen Out-Parameter verwenden, ich habe einen guten Grund haben, so zu tun, da ich versuche, sie ganz zu vermeiden.

ich aber, dass sich vorstellen kann, wenn mehrere Personen an einem Projekt arbeiten, können Sie diese Warnung haben, eingeschaltet, wenn Sie einige Code-Reviews tun wollen ...

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