Formatierungsoptionen¶
Der folgende C#-Code zeigt die Anwendung der Console.WriteLine()
-Methode zur Ausgabe von Werten in verschiedenen Formaten. Er demonstriert numerische Formatbezeichner, Datums-/Uhrzeitformatbezeichner sowie Aufzählungs- (Enum) Formatbezeichner. Verschiedene Formatierungsmuster wie Währung, Wissenschaftliche Notation, Hexadezimal und Datumsformatierung werden verwendet, um die Flexibilität der Ausgabeoptionen in .NET zu zeigen.
// Definition einer Enumeration namens "Color".
enum Color { Yellow = 99, Blue = 101, Green };
// Variable, die das aktuelle Datum speichert.
static DateTime thisDate = DateTime.Now;
// Löscht den Konsoleninhalt.
Console.Clear();
// Ausgabe von Zahlen mit verschiedenen Standardformatbezeichnern.
Console.WriteLine("Standard Numeric Format Specifiers");
// Formatierungsbeispiele für negative Ganzzahlen und Gleitkommazahlen.
Console.WriteLine(
"(C) Currency: . . . . . . . . {0:C}\n" + // Währungsformatierung
"(D) Decimal:. . . . . . . . . {0:D}\n" + // Dezimalformatierung
"(E) Scientific: . . . . . . . {1:E}\n" + // Wissenschaftliche Notation
"(F) Fixed point:. . . . . . . {1:F}\n" + // Festkommaformat
"(G) General:. . . . . . . . . {0:G}\n" + // Allgemeines Zahlenformat
" (default):. . . . . . . . {0} (default = 'G')\n" + // Standardformat
"(N) Number: . . . . . . . . . {0:N}\n" + // Zahlenformat mit Tausendertrennung
"(P) Percent:. . . . . . . . . {1:P}\n" + // Prozentformatierung
"(R) Round-trip: . . . . . . . {1:R}\n" + // Round-Trip-Format für Gleitkommazahlen
"(X) Hexadecimal:. . . . . . . {0:X}\n", // Hexadezimalformatierung
-123, -123.45f);
Standard Numeric Format Specifiers (C) Currency: . . . . . . . . -123,00 ¤ (D) Decimal:. . . . . . . . . -123 (E) Scientific: . . . . . . . -1,234500E+002 (F) Fixed point:. . . . . . . -123,450 (G) General:. . . . . . . . . -123 (default):. . . . . . . . -123 (default = 'G') (N) Number: . . . . . . . . . -123,000 (P) Percent:. . . . . . . . . -12.345,000 % (R) Round-trip: . . . . . . . -123,45 (X) Hexadecimal:. . . . . . . FFFFFF85
// Ausgabe des aktuellen Datums in verschiedenen Formaten.
Console.WriteLine("Standard DateTime Format Specifiers");
// Formatierungsbeispiele für Datums- und Uhrzeitangaben.
Console.WriteLine(
"(d) Short date: . . . . . . . {0:d}\n" + // Kurzes Datumsformat
"(D) Long date:. . . . . . . . {0:D}\n" + // Langes Datumsformat
"(t) Short time: . . . . . . . {0:t}\n" + // Kurzes Zeitformat
"(T) Long time:. . . . . . . . {0:T}\n" + // Langes Zeitformat
"(f) Full date/short time: . . {0:f}\n" + // Volles Datum und kurze Zeit
"(F) Full date/long time:. . . {0:F}\n" + // Volles Datum und lange Zeit
"(g) General date/short time:. {0:g}\n" + // Generelles Datum und kurze Zeit
"(G) General date/long time: . {0:G}\n" + // Generelles Datum und lange Zeit
" (default):. . . . . . . . {0} (default = 'G')\n" + // Standardformat
"(M) Month:. . . . . . . . . . {0:M}\n" + // Monatsformat
"(R) RFC1123:. . . . . . . . . {0:R}\n" + // RFC1123-Datumsformat
"(s) Sortable: . . . . . . . . {0:s}\n" + // Sortierbares Datumsformat
"(u) Universal sortable: . . . {0:u} (invariant)\n" + // Universell sortierbares Format
"(U) Universal full date/time: {0:U}\n" + // Universelles volles Datums-/Zeitformat
"(Y) Year: . . . . . . . . . . {0:Y}\n", // Jahresformat
thisDate);
Standard DateTime Format Specifiers (d) Short date: . . . . . . . 25.10.2024 (D) Long date:. . . . . . . . Freitag, 25. Oktober 2024 (t) Short time: . . . . . . . 16:14 (T) Long time:. . . . . . . . 16:14:12 (f) Full date/short time: . . Freitag, 25. Oktober 2024 16:14 (F) Full date/long time:. . . Freitag, 25. Oktober 2024 16:14:12 (g) General date/short time:. 25.10.2024 16:14 (G) General date/long time: . 25.10.2024 16:14:12 (default):. . . . . . . . 25.10.2024 16:14:12 (default = 'G') (M) Month:. . . . . . . . . . 25. Oktober (R) RFC1123:. . . . . . . . . Fri, 25 Oct 2024 16:14:12 GMT (s) Sortable: . . . . . . . . 2024-10-25T16:14:12 (u) Universal sortable: . . . 2024-10-25 16:14:12Z (invariant) (U) Universal full date/time: Freitag, 25. Oktober 2024 14:14:12 (Y) Year: . . . . . . . . . . Oktober 2024
// Ausgabe einer Aufzählung in verschiedenen Formaten.
Console.WriteLine("Standard Enumeration Format Specifiers");
// Formatierungsbeispiele für eine Enumeration.
Console.WriteLine(
"(G) General:. . . . . . . . . {0:G}\n" + // Allgemeines Format für Enumerationen
" (default):. . . . . . . . {0} (default = 'G')\n" + // Standardformat
"(F) Flags:. . . . . . . . . . {0:F} (flags or integer)\n" + // Flags-Format für Enumerationen
"(D) Decimal number: . . . . . {0:D}\n" + // Dezimalformat für Enumerationen
"(X) Hexadecimal:. . . . . . . 0x{0:X}\n", // Hexadezimalformat für Enumerationen
Color.Green); // Gibt die Farbe Grün aus.
Standard Enumeration Format Specifiers (G) General:. . . . . . . . . Green (default):. . . . . . . . Green (default = 'G') (F) Flags:. . . . . . . . . . Green (flags or integer) (D) Decimal number: . . . . . 102 (X) Hexadecimal:. . . . . . . 0x00000066
WriteLine & tabellarische Darstellung¶
Der nächste Code berechnet das Trinkgeld für eine Rechnung basierend auf einem festen Trinkgeldsatz von 18 %. Es wird die Rechnung, das Trinkgeld und die Gesamtsumme formatiert und in der Konsole ausgegeben.
// Definiert eine konstante Variable für den Trinkgeldsatz.
private const double tipRate = 0.18;
// Deklariert eine Variable für die Gesamtrechnung.
double billTotal = 42.42;
// Berechnet das Trinkgeld basierend auf der Gesamtrechnung und dem Trinkgeldsatz.
double tip = billTotal * tipRate;
// Gibt die Gesamtrechnung, das Trinkgeld und den Gesamtsumme mit Formatierung in die Konsole aus.
Console.WriteLine();
Console.WriteLine($"Bill total:\t{billTotal,8:c}"); // Formatierte Ausgabe der Gesamtrechnung.
Console.WriteLine($"Tip total/rate:\t{tip,8:c} ({tipRate:p1})"); // Ausgabe des Trinkgelds und des Prozentsatzes.
Console.WriteLine(("").PadRight(24, '-')); // Trennlinie.
Console.WriteLine($"Grand total:\t{billTotal + tip,8:c}"); // Ausgabe der Gesamtsumme (Rechnung + Trinkgeld).
Bill total: 42,42 ¤ Tip total/rate: 7,64 ¤ (18,0 %) ------------------------ Grand total: 50,06 ¤
WriteLine & "new line"¶
Der folgende Code zeigt, wie man den Zeilenumbruch (Newline) in der Konsole ändern kann. Zuerst werden die Zeilen mit der Standard-Zeilenumbruchsequenz ausgegeben. Danach wird der Zeilenumbruch auf einen doppelten Abstand gesetzt, und die Zeilen werden erneut mit dieser neuen Zeilenumbruchsequenz ausgegeben.
// Ein Array von Zeichenfolgen, das zwei Zeilen enthält.
string[] lines = { "This is the first line.",
"This is the second line." };
// Ausgabe der Zeilen unter Verwendung der Standard-Zeilenumbruchsequenz.
Console.WriteLine("With the default new line characters:");
Console.WriteLine();
foreach (string line in lines)
// Gibt jede Zeile mit dem Standard-Zeilenumbruch aus.
Console.WriteLine(line);
Console.WriteLine();
// Die Zeilenumbruchsequenz wird neu definiert, um einen doppelten Abstand zu verwenden.
Console.Out.NewLine = "\r\n\r\n";
// Ausgabe der Zeilen unter Verwendung der neu definierten Zeilenumbruchsequenz.
Console.WriteLine("With redefined new line characters:");
Console.WriteLine();
foreach (string line in lines)
// Gibt jede Zeile mit der neuen Zeilenumbruchsequenz aus.
Console.WriteLine(line);
With the default new line characters: This is the first line. This is the second line. With redefined new line characters: This is the first line. This is the second line.