Kommentare in C# [] (Kommentare in C#), Lektion, Seite 723331
https://www.purl.org/stefan_ram/pub/kommentare_csharp (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C#-Kurs

Kommentare in C♯ 

Kommentare erlauben es, Programme durch Erläuterungen verständlicher zu machen oder wichtige Notizen oder Hinweise an Bearbeiter an den passenden Stellen in einem Programm festzuhalten.

In C♯ -Programme können Kommentare  eingefügt werden.

Kommentare können (außerhalb eines Kommentars und eines Zeichenfolgenliterals) an jeder Stelle, an der auch Leerraum stehen dürfte, mit dem Zeichenpaar »/*« eingeleitet werden, sie enden mit dem ersten folgenden Zeichenpaar »*/«. Solche Kommentare können auch mehrere Zeilen umfassen.

Das Zeichen »/« wird „Schrägstrich“ genannt.

Das Zeichen »*« wird „Stern“ (oder „Sternchen“) genannt.

Das Zeichenpaar »/*« muß zur Einleitung eines Kommentars genau so geschrieben werden (es darf kein Leerzeichen zwischen die beiden Zeichen eingefügt werden, genaus darf auch in das Zeichenpaar »*/« zur Beendigung eines Kommentars kein Leerraum eingefügt werden).

Innerhalb  eines Kommentars hat das Zeichenpaar »/*« keine besondere Bedeutung.

Der in einem Kommentar enthaltene Text wird von einer C♯ -Implementation im allgemeinen ignoriert. Daher können Kommentare verwendet werden, um irgendwelche Notizen in ein Programm zu schreiben oder auch um lexikalische Einheiten zu trennen.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( - -65/* Brot kaufen! Lehmann anrufen! */ ); }}
global::System.Console.Out
65

Kommentare dürfen auch über mehrere Zeilen gehen.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( - -65 /*
Brot kaufen!
Lehmann anrufen!
*/
); }}
global::System.Console.Out
65

Kommentare können auch zum Trennen lexikalischer Einheiten verwendet werden.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( -/* Vorzeichenwechsel */-/* Vorzeichenwechsel */65 ); }}
global::System.Console.Out
65
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( -/* Vorzeichenwechsel */-65 ); }}
global::System.Console.Out
65

Entfernt man den Kommentar in dem obigen korrekten Programm, so erhält man das folgende fehlerhafte Programm.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( --65 ); }}

Kommentare werden vor der weiteren Verarbeitung eines Quelltextes bei der Übersetzung aber praktisch durch ein Leerzeichen ersetzt. Aus dem obigen Programm mit  Kommentaren wird also das folgende Programm gemacht.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( - -65 ); }}
global::System.Console.Out
65

Einzeilenkommentare

Durch das Zeichenpaar »//« wird Text bis zum Ende der Zeile  als Kommentar gekennzeichnet. Solche Kommentare nennt man Einzeilenkommentare. (Hierbei darf kein Leerraum zwischen die beiden Schrägstriche eingefügt werden.)

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
(
-65 // Vorzeichenwechsel
); }}
global::System.Console.Out
-65

Innerhalb eines Einzeilenkommentars haben die Zeichenpaare »/*«, »*/« und »//« keine besondere Bedeutung.

Im Vergleich zu Zeilenendkommentaren wird ein mit dem Zeichenpaar »/*« eingeleiteter Kommentar als begrenzter Kommentar  bezeichnet.

Übungsfragen

?   Kommentare zählen

Ist das folgende Programm korrekt, und, wenn ja: wie viele Kommentare finden sich darin?

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 65/* alpha /* // /** beta */ ); }}

Robustheit von Kommentaren *

Bei der Darstellung oder Übermittlung von Programmen werden lange Zeilen manchmal neu umbrochen. Dadurch kann es passieren, daß ein Teil eines Einzeilenkommentars plötzlich am Anfang der nächsten Zeile landet und das Programm dann nicht mehr korrekt ist.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
(
-65 //
Vorzeichenwechsel

); }}

Die Struktur von Zeilenendkommentaren folgt nicht der üblichen Regelung, derzufolge im Quelltext ein Leerzeichen durch ein Zeilenende ersetzt werden kann, ohne daß dies die Bedeutung des Quelltextes verändern. Traditionalle Kommentare sind gegenüber einem unbeabsichtigten Umbruch robuster, weil sie der genannten Regelung entsprechen.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
(
-65 /*
Vorzeichenwechsel */

); }}
global::System.Console.Out
-65

Zeichenfolgenliterale *

Die Kommentareinleiter »/*« und »//« leiten innerhalb einem Zeichenfolgenliterals keinen Kommentar ein, sondern gelten dann auch als Teil der Zeichenfolge.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
(
"ABC/*DEF//GHI"
); }}
global::System.Console.Out
ABC/*DEF//GHI

Umgekehrt gelten Anführungszeichen in Kommentaren nicht als Beginn eines Zeichenfolgenliterals.

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
(
65/*"*/
); }}
global::System.Console.Out
65

Kommentardiagramm für Kommentare *

Die folgenden Kommentardiagramme beschreiben Kommentare.

Ein Kommentardiagramm  ist genauso zu verstehen, wie ein morphologisches Diagramm. Wir nennen es aber nicht „morphologisches Diagramm“, da morphologische Diagramme lexikalische Einheiten  beschreiben und ein Kommentar keine  lexikalische Einheit ist. Kommentardiagramme werden in diesem Kurs mit »|/|« gekennzeichnet.

Kommentar

        .-.           .-.                                   .-------------.
|/|--->( / )--->.--->( / )----.------------------------.--->| Zeilenende |--->.---->|/|
'-' | '-' ^ | '-------------' ^
| | .---------------. | |
| | | jedes Zeichen | | |
| '---| ausser einem |<---' |
| | Zeilenende | |
| '---------------' |
| |
| .---------------. |
| | jedes Zeichen | |
| .---| ausser "*" |<--------. |
| | | und "/" | | |
| | '---------------' | |
| .-. v | |
'--->( * )--->'---------------------------->' |
'-' | ^ ^ |
| | | |
v | | |
.<-----------. | |
| | | |
v .-. | | |
'--->( / )---' .------------. |
| '-' | | |
| | | |
| v .-. | .-. |
'--------------->'--->( * )---'---( / )----------'
'-' '-'

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723331 stefan_ram:723331 Kommentare in C# Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723331, slrprddef723331, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/kommentare_csharp