[Description("Komentar")]
public void Function() {}/// <summary>Kommentar</summary>
public void Function() {}
/* Kommentar */
public void Function1() {}
// Kommentar
public void Function2() {}
/** @brief Komentar */
public void Function2() {}
|
|
[Description("Komentar")]
public void Function() {}///<summary>
///Mein Text der auch im Intellisense erscheint
/// </summary>
/// <param name="para1">Der Wert der die Funktion braucht.</param>
/// <param name="para2">Numerischer Wert der zwischen 0 und 5 liegen muss.</param>
public void meineMethode(string para1,int para2)
{
}
//Test
|
|
Ich würde ebenfalls die 2. Variante bevorzugen.
Und zwar nach folgendem Schema:
/// <summary>Grundlegende Beschreibung was die Funktion tut</summary>
/// <param name="name">Beschreibung des Parameters "Name"</param>
/// <param name="alter">Beschreibung des Parameters "Alter"</param>
/// <returns>Was gibt die Funktion zurück?</returns>
/// <remarks>Eine ausführlichere Beschreibung der Funktion wenn nötig</remarks>
Wenn die Funktion Fehler schmeißen kann
/// <exception cref="System.IO.FileNotFoundExceptionB">Beschreibung wann und warum diese Exception geworfen wird.</exception>
Bei generischen Typen wie List<T>
/// <typeparam name="T">The element type of the list</typeparam>
Für Properties
/// <value>The Name property gets/sets the _name data member.</value>
Bei Toolkits und Bibliotheken auf jeden Fall zu empfehlen - die ein Stück Beispielcode:
/// <example>
/// Dieses Beispiel zeigt die Verwendung der String-Extension <see cref="Left"/>.
/// <code>
/// "MyString".Left(3);
/// //Returns: "MyS"
/// </code>
/// </example>
|
|
Build -> Output -> XML documentation fileeine Checkbox. Wird diese gesetzt und ein Pfad zur XML-Datei angegeben, wirst du gezwungen, jede öffentliche Klasse und Methode mit Kommentaren zu versehen (zumindest bei Warning level4 und bei der Einstellung "Treat warnings as errors -> All"), was auch auf jeden Fall Sinn macht.
Warning as Error: Missing XML comment for publicly visible type or member
|
|
|
GhostDoc ist echt fein. Habe es gerade ausprobiert und erzeugt erstaunlich gute und default Kommentare und Beschreibungen. :-)
– smartic 11.03.2011
|
||
|
Cool :o) , die Version 3 arbeitet ja jetzt auch mit vs2010, ich hatte bisher nur die v2 für vs2008.
– Jorgen Schumann 11.03.2011
|
|
|
|
|
|
Gentlehag war offenbar schneller und hat seine Antwort gepostet, während ich noch getippt habe.
– Matthias Hlawatsch 11.03.2011
|
||
|
|
|
Funktioniert ganz gut, es gibt auch weitere generatoren. Damals hatte ich mal noch NDOC und Doxygen getestet. Weiß aber nicht ob diese noch aktuell sind.
Insbesondere wenn du einen automatisierten BuildProzess hast kannst du dir das jede Nacht automatisch erstellen und online aktualisieren lassen. Aber ist ein anderes Thema. :-) – Gentlehag 11.03.2011
|
||
|
Doxygen ist mir ein Begriff aus der Linuxwelt, der mir beim "FragenStellen" nicht mehr eingefallen ist. ;-)
– smartic 11.03.2011
|
||
|
@gentlehag: ndoc wurde schon vor Jahren aufgegeben. Ein wenig erfährt man über die Hintergründe, Wiederbelebungsversuche und mögliche Alternativen hier: http://sourceforge.net/projects/ndoc/forums/forum/112809
– Matthias Hlawatsch 11.03.2011
|
|
|
| 2 |
Das kommt darauf an.
Z.bsp. kan ndein interface "IEntityPersistor" sein. und die Implementieren "SQL DataBase Persistor" dann würde im IEntityPersistor kommentare wie "Speichert / lädt entitäten sein" in der Implementierung wäre es eher "Inserted einen Datensatz im SQL Server der die Entität wiederspiegelt" Natürlich gibts redundante fälle, da hilft ghostdoc – Gentlehag 11.03.2011
|
|
|
Im Fall einer reinen Redundanz verwende ich, in Anlehnung an javadoc:
/// <summary> /// <inheritdoc /> /// </summary> Visual Studio berücksichtigt das (im Gegensatz zu Eclipse in der Java-Variante) zwar leider nicht, aber Sandcastle soll es wohl können, und im Code selbst hantiert (hoffentlich) nur jemand mit der Implementierung, der sie gut kennt oder selbst geschrieben hat - "weiter entfernte" Nutzer sehen das Interface. – Matthias Hlawatsch 11.03.2011
|