Kommentar Erbe für die C# - (eigentlich alle Sprachen)
Nehme an, dass ich diese Schnittstelle
public interface IFoo
{
///<summary>
///Foo method
///</summary>
void Foo();
///<summary>
///Bar method
///</summary>
void Bar();
///<summary>
///Situation normal
///</summary>
void Snafu();
}
Und diese Klasse
public class Foo : IFoo
{
public void Foo() { ... }
public void Bar() { ... }
public void Snafu() { ... }
}
Gibt es eine Möglichkeit, oder gibt es ein tool, dass kann lassen Sie mich automatisch in den Kommentaren von jedem Element in einer Basisklasse oder Schnittstelle?
Weil ich es hasse neu zu schreiben, die gleichen Kommentare, die für jedes abgeleitete sub-Klasse!
Ich habe mich nicht nur hassen, aber es ist auch schwer zu synchron zu halten.
InformationsquelleAutor jumpinjackie | 2008-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
GhostDoc macht genau das. Für Methoden, die nicht vererbt, es versucht, eine Beschreibung des namens.
FlingThing()
wird"Flings the Thing"
Automatisch generierte docs scheint eine sehr schlechte Idee zu mir. Sie don ' T fügen Sie keine nützlichen Informationen, aber nur Schlag den code unnötig. Wenn sich ein Werkzeug zu verstehen, was eine Methode tut, aus seinem Namen, als eine person, kann auch verstehen und kein doc nötig ist.
Das ist so wahr. Ich hatte mal den Rahmen, die hatte nur so generierten Kommentare, Hinzugefügt, dass KEINE Informationen an die Methode/Klasse. Anstelle von "Diese Methode macht dies und das" die Kommentare, wo, wie "Dies ist die Methode XY der Klasse Z". xD Außerdem ist Sie coudn ' T, durchsuchen Sie den code, so ging es zu trial&error. Nie wieder!!! 🙂
Während ich 100% Stimme mit Ihnen soweit Vertrauen auf die AGDs - wie sollte ich darauf hinweisen, dass die AGDs sind nicht gedacht als "tun es alle" magic buttons wie, die. Stattdessen werden Sie dazu genutzt werden, um als template-Generatoren reduzieren die Menge an boilerplate, sich wiederholende Dokumentation, die Sie haben zu schreiben, selbst, so können Sie konzentrieren auf die wichtigen Dinge. --- Zum Beispiel, zu generieren
<summary>
,<param>
,<returns>
,<throws>
,etc...
Abschnitte für Sie. Viele Male mit gut-genug-Ergebnisse; in anderen Fällen müssen Korrekturen oder erweitert, aber immer noch die Verringerung der Gesamt-Aufwand.Menschen die Dokumentation ist nicht für Entwickler, die es für Architekten so Ihre ärsche sind alle bedeckt: "Hey, können wir Lesen Sie die Dokumentation Ihres Projekts? Sicher, hier ist es."
InformationsquelleAutor James Curran
Können Sie immer
<inheritdoc />
tag.Blick auf Jeff Heaton Antwort von ein Jahr früher, und das Kommentar darunter. Sandcastle hat <inheritdoc/>, nicht C#.
Ich sehe Kommentare von der Schnittstelle in intellisense mit inheritdoc, und auch, wenn es kein code-doc an alle, die auf der abgeleiteten Klasse. Aber das könnte sein, weil ich resharper.
Resharper 2017.2 hat verbesserte Unterstützung für inheritdoc jetbrains.com/resharper/whatsnew
Visual Studio Enterprise-2017 (version 15.9.3) zeigt nicht geerbt Kommentare für mich.
InformationsquelleAutor Vadim
Java hat, und ich benutze es die ganze Zeit. Nur:
Und dem Javadoc-Werkzeug, zahlen Sie es aus.
C# hat eine ähnliche Markierung:
Lesen Sie hier mehr:
http://www.ewoodruff.us/shfbdocs/html/79897974-ffc9-4b84-91a5-e50c66a0221d.htm
<inheritdoc/>
marker: Sandcastle hat es. shfb.codeplex.comEs ist eine user-voice feature-request hinzufügen <inheritdoc /> C#. Gehen-Abstimmung unter visualstudio.uservoice.com/forums/121579-visual-studio/...
Weder C# noch Java (oder irgendeiner anderen Programmiersprache) wurde von der "XML-Dokument" Elemente. Diese werden Kommentare. Der Compiler wissen, nothng über Sie. Sie sind alle streng von Drittanbietern Dokumentations-Generatoren, ob das javadoc oder Sandburgen oder was auch immer.
Wenn Java oder C# angegeben ist, bedeutet dies NORMALERWEISE, dass sich die Gemeinschaft von zugehörigen tools. Weder Java noch C# haben viel Fähigkeit im eigentlichen Sinn. Es wäre eine Akademische argument, zu behaupten, dass Java oder C# fehlen der Fähigkeit, eine Verbindung zu einer Datenbank, da die library das macht.
InformationsquelleAutor JeffHeaton
Verwenden
///<inheritdoc/>
wenn Sie möchten, Vererbung. Vermeiden GhostDoc oder etwas ähnliches.Ich Zustimmen, es ist nervig, dass die Kommentare nicht vererbt werden. Es wäre ein ziemlich einfaches add-in zu erstellen, wenn jemand die Zeit hätte (ich wünschte, ich Tat).
Sagte, in unserer code-Basis setzen wir die XML-Kommentare, die auf die Schnittstellen und fügen Sie zusätzliche Implementierung Kommentare zu der Klasse. Dies funktioniert für uns, da unsere Klassen sind private/interne und nur die Schnittstelle ist öffentlich. Jedes mal, wenn wir die Nutzung der Objekte über die Schnittstellen wir haben die volle Kommentare Anzeige im intellisence.
GhostDoc ist gut gestartet und hat das Verfahren einfacher, Kommentare zu schreiben. Es ist besonders nützlich halten Kommentare up-to-date, wenn Sie, hinzufügen/entfernen von Parametern, re-run GhostDoc und es wird aktualisiert die Beschreibung.
InformationsquelleAutor Dennis
Resharper hat eine option zum kopieren der Kommentare aus der Basisklasse oder Schnittstelle.
Wenn Sie Alt+Enter, die Methode überschreiben, es gibt eine option "Kopie der Dokumentation von der Basis".
InformationsquelleAutor svick
Ich würde sagen, zu direkt die
Und
Haben Sie diese Kommentare einfach nur auf die Vorherige Zeile der Klasse/Methode
Diese erhalten die info Ihre Kommentare zum Beispiel von einer Schnittstelle, die Sie dokumentiert haben möchten :
InformationsquelleAutor gatsby
Andere Möglichkeit ist die Verwendung der XML-doc-tag.
Dies ist einige zusätzliche Aufwand, aber funktioniert out of the box...
Hier sind einige Beispiele:
Update:
Ich nun lieber verwenden
///<inheritdoc/>
unterstützt durch die mittlerweile ReSharper.InformationsquelleAutor Mathias Rotter
Ich landete ein tool zum post-Prozess die Dokumentation zu XML-Dateien, um Unterstützung für das ersetzen der
<inheritdoc/>
- tag in der XML-Dokumentation, die Dateien selbst. Verfügbar unter http://www.inheritdoc.io (Kostenlose version verfügbar).InformationsquelleAutor K Johnson