Kommentar

Was sind Kommentare?

Kommentare sind erläuternde Texte im Quellcode, die Programmierern das Verständnis der Programm-Logik erleichtern. Sie gehören nicht zum ausführbaren Code; der Compiler ignoriert sämtlichen Inhalt von Kommentaren während der Kompilierung vollständig.

Zusätzlich lassen sich Kommentare zur Fehlersuche bei Debugging-Vorgängen nutzen. Wenn du die Ursache eines Programmfehlers nicht ausfindig machen kannst, markierst du verdächtige Code-Bereiche als Kommentar – der Compiler überspringt diese Zeilen, sodass du das Problem Schritt für Schritt eingrenzen kannst.

Kommentare lassen sich mit Randnotizen vergleichen, die wir früher in Schulbücher geschrieben haben: Zusätzliche Hinweise erleichtern das Verständnis des eigentlichen Textinhalts.

Arten von Kommentaren

Kommentar-TypStartmarkierungEndmarkierungKernregeln
Einzeiliger Kommentar Single-line//Ende der aktuellen ZeileWirkt sich nur auf die komplette Zeile aus; alles nach // auf derselben Zeile wird verworfen
Blockkommentar Delimited/**/Umfasst mehrere Zeilen oder Teilabschnitte innerhalb einer Zeile; Verschachtelung ist nicht erlaubt
Dokumentationskommentar Documentation///Ende der aktuellen ZeileUnterstützt eingebaute XML-Tags, dient der automatischen Erstellung von Projekt-API-Dokumentationen

1. Einzeilige Kommentare //

  1. Alles ab dem Zeichen // bis zum Ende der aktuellen Zeile wird vom Compiler ignoriert;
  2. Kann am Zeilenanfang oder hinter ausführbarem Code platziert werden;
  3. Es gibt keine Einschränkungen bei Verschachtelung, es entstehen keine Syntaxkonflikte mit Blockkommentaren /* */.
// Einzeiliger Kommentar am Zeilenanfang: Deklariere numerische Variable
int num = 10; // Einzeiliger Kommentar nach Code: Speichert den Zahlenwert 10
// int temp = 99; // Gesamte Zeile als Kommentar markiert für Debugging; deaktiviert Code vorläufig ohne Löschen, später einfach wiederherstellbarCode-Sprache: JavaScript (javascript)

2. Blockkommentare /* */

  1. Benötigt passende Start- und Endmarkierungen; sämtlicher Inhalt zwischen /* und */ wird ignoriert;
  2. Unterstützt mehrzeilige Umschließung sowie teilweise Kommentierung innerhalb einer Zeile;
  3. Verschachtelte Blockkommentare sind verboten. Der Compiler beendet den Kommentar beim ersten vorkommenden */, übrigbleibende einzelne */ lösen Syntaxfehler aus.

Beispiel

/*
Beispiel für einen mehrzeiligen Blockkommentar
Der Compiler überspringt sämtlichen Inhalt darin
Es lassen sich beliebig viele Zeilen mit Erläuterungen schreiben
*/
string str = "Test";Code-Sprache: JavaScript (javascript)
/*
Multi-line delimited comment example
All content here is ignored by the compiler
Text can span any number of lines
wellcome to foxdevelop.com
*/
string greet = "wellcome to foxdevelop.com";
Console.WriteLine(greet);Code-Sprache: JavaScript (javascript)

Verschachtelung löst einen Kompilierfehler aus

Wenn innerhalb eines Blockkommentars ein weiterer Blockkommentar platziert wird, besitzt die letzte Endmarkierung keine passende Startmarkierung – dies führt zu einem Kompilierfehler.

Teilkommentare innerhalb einer Zeile

Blendet nur einen Teil des Codes aus; im folgenden Beispiel ist die Variable a vollständig auskommentiert.

int /*a,*/ b; 
// Entspricht int b; der Teil „a,“ zwischen den Markierungen wird bei der Ausführung ausgeschlossenCode-Sprache: JavaScript (javascript)
Fehlerhaft verschachtelter Blockkommentar

Löst einen Fehler aus

/* Äußerer Kommentar beginnt
    /* Innerer verschachtelter Kommentar (nur als normaler Text erkannt, ohne Funktion) */
// Das obige erste */ schließt den äußeren Kommentar ab, das untere */ hat keine passende Startmarkierung und verursacht einen Syntaxfehler
*/Code-Sprache: JavaScript (javascript)
/* innerhalb von // aktiviert keinen Blockkommentar

Die Blockkommentar-Markierungen werden hier als einfacher Text innerhalb des einzeiligen Kommentars behandelt und wirken nicht.

// Das ist ein einzeiliger Kommentar /* das /* hier ist nur normaler Text und startet keinen Blockkommentar
int x = 5;
/* Blockkommentar öffnen */ // Der Block endet hier, das nachfolgende // funktioniert wie gewohntCode-Sprache: JavaScript (javascript)

3. Dokumentationskommentare ///

  1. Ähnlich wie einzeilige Kommentare, gekennzeichnet durch drei aufeinanderfolgende Schrägstriche ///;
  2. Erlaubt eingebettete XML-Tags; IDEs und Tools lesen diese aus, um automatisiert API-Referenzdokumentationen zu erstellen;
  3. Üblicherweise oberhalb von Klassen, Methoden und Eigenschaften platziert, um öffentliche Schnittstellen zu dokumentieren.
/// <summary>
/// Hauptklasse, Einstiegspunkt der Anwendung
/// </summary>
class Program
{
    /// <summary>
    /// Einstiegsmethode des Programms
    /// </summary>
    /// <param name="args">Array mit Kommandozeilenargumenten</param>
    static void Main(string[] args)
    {

    }
}Code-Sprache: JavaScript (javascript)

Zusammenfassung

  1. Blockkommentare /* */ lassen sich nicht verschachteln; die Auswertung des Kommentars endet sofort beim ersten gefundenen */;
  2. Einzeilige //-Kommentare gelten nur für die jeweilige Zeile, überschreiten keine Zeilengrenzen; jedes darin enthaltene /* wird als normales Zeichen interpretiert;
  3. Syntax und Verhalten von einzeiligen sowie Blockkommentaren in C# stimmen vollständig mit C/C++ überein;
  4. Regel für das Verfassen von Kommentaren: Wiederhole nicht die wörtliche Bedeutung des Codes, sondern erläutere vor allem fachliche Ziele und Design-Überlegungen zur Vereinfachung zukünftiger Wartung. Kommentare, die lediglich Variablennamen wiederholen, haben keinen praktischen Nutzen.
  5. Kurze Zeilen-Erläuterungen, vorläufiges Ausblenden einzelner Code-Zeilen → verwende //
  6. Massenweises Auskommentieren mehrerer Zeilen, teilweises Ausblenden von Code-Fragmenten innerhalb einer Zeile → verwende /* */
  7. Dokumentation von Klassen-/Methodenschnittstellen, automatische Generierung von Projektdokumentationen → verwende ///

* Erstellen von Dokumentationsdateien

Der folgende Abschnitt dient nur als Referenz. Dokumentationskommentare werden vor allem in großen Enterprise-Projekten eingesetzt; während der Lernphase genügt es, deren Existenz zu kennen.

Vorgehensweise in Visual Studio
  1. Rechtsklick auf das Projekt → Eigenschaften → Reiter Erstellen (Build);
  2. Hake die Option an: Generate XML documentation file (XML-Dokumentationsdatei erstellen);
  3. Standard-Ausgabepfad: bin\Debug\Projektname.xml, individuelle Pfade lassen sich frei festlegen;
  4. Wähle All Configurations (Alle Konfigurationen) zum Aktivieren für Debug- und Release-Modus;
  5. Erstelle das Projekt neu; im Zielordner erscheint eine vollständige XML-Datei mit allen Kommentaren.
.NET CLI Befehlszeilen-Konfiguration (ohne Visual Studio)

Öffne die Projektdatei .csproj und füge folgenden Knoten ein:

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>Code-Sprache: HTML, XML (xml)

Führe den Erstellungsbefehl aus:

dotnet build
Funktionsweise

Diese XML-Datei speichert sämtliche Inhalte aus Tags wie <summary>、<param>、<returns> und dient als Datenquelle zur Generierung von Referenzdokumentationen. Zusätzlich liest Visual Studio diese Datei aus, um Kommentare in den IntelliSense-Maus-Tooltips anzuzeigen.

Weitere Dokumentationswerkzeuge

Microsoft-eigenes DocFX (von Microsoft empfohlen, erstellt statische HTML-Dokumentationswebseiten)

Sandcastle (altes Microsoft-Tool zum Erstellen offline nutzbarer CHM-Hilfedateien)

Leichte Drittanbieter-Werkzeuge (z. B. Doxygen)

Erläuterung der drei verschiedenen Kommentar-Syntaxen abgeschlossen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert