# Datumsangaben in Strings formatieren
var date = new DateTime(2015, 11, 11);
var str = $"It's {date:MMMM d, yyyy}, make a wish!";
System.Console.WriteLine(str);
Sie können auch den DateTime.ToString
verwenden Methode zum Formatieren von DateTime
Objekt. Dies erzeugt dieselbe Ausgabe wie der obige Code.
var date = new DateTime(2015, 11, 11);
var str = date.ToString("MMMM d, yyyy");
str = "It's " + str + ", make a wish!";
Console.WriteLine(str);
Ausgabe:
Es ist der 11. November 2015, wünsch dir was!
Live-Demo auf .NET Fiddle
Live-Demo mit DateTime.ToString
Hinweis: MM
steht für Monate und mm
minutenlang. Seien Sie sehr vorsichtig, wenn Sie diese verwenden, da Fehler zu Fehlern führen können, die möglicherweise schwer zu entdecken sind.
# Auffüllen der Ausgabe
String kann so formatiert werden, dass er einen Padding-Parameter akzeptiert, der angibt, wie viele Zeichenpositionen der eingefügte String verwenden wird:
${value, padding}
**HINWEIS:** Positive Padding-Werte zeigen linke Padding und negative Padding-Werte rechte Padding.
# Linke Auffüllung
Eine linke Auffüllung von 5 (fügt 3 Leerzeichen vor dem Wert von Zahl hinzu, sodass insgesamt 5 Zeichenpositionen in der resultierenden Zeichenfolge belegt werden.)
var number = 42;
var str = $"The answer to life, the universe and everything is {number, 5}.";
//str is "The answer to life, the universe and everything is 42.";
// ^^^^^
System.Console.WriteLine(str);
Ausgabe:
The answer to life, the universe and everything is 42.
Live-Demo auf .NET Fiddle
# Right Padding
Rechtes Auffüllen, das einen negativen Auffüllwert verwendet, fügt Leerzeichen am Ende des aktuellen Werts hinzu.
var number = 42;
var str = $"The answer to life, the universe and everything is ${number, -5}.";
//str is "The answer to life, the universe and everything is 42 .";
// ^^^^^
System.Console.WriteLine(str);
Ausgabe:
The answer to life, the universe and everything is 42 .
Live-Demo auf .NET Fiddle
# Auffüllen mit Formatbezeichnern
Sie können auch vorhandene Formatierungsbezeichner in Verbindung mit Padding verwenden.
var number = 42;
var str = $"The answer to life, the universe and everything is ${number, 5:f1}";
//str is "The answer to life, the universe and everything is 42.1 ";
// ^^^^^
Live-Demo auf .NET Fiddle
# Ausdrücke
Vollständige Ausdrücke können auch in interpolierten Zeichenfolgen verwendet werden.
var StrWithMathExpression = $"1 + 2 = {1 + 2}"; // -> "1 + 2 = 3"
string world = "world";
var StrWithFunctionCall = $"Hello, {world.ToUpper()}!"; // -> "Hello, WORLD!"
Live-Demo auf .NET Fiddle
# Einfache Verwendung
var name = "World";
var str = $"Hello, {name}!";
//str now contains: "Hello, World!";
# Hinter den Kulissen
Intern dies
$"Hello, {name}!"
Wird etwa so kompiliert:
string.Format("Hello, {0}!", name);
# Zahlen in Strings formatieren
Sie können einen Doppelpunkt und die standardmäßige numerische Formatsyntax verwenden, um zu steuern, wie Zahlen formatiert werden.
var decimalValue = 120.5;
var asCurrency = $"It costs {decimalValue:C}";
// String value is "It costs $120.50" (depending on your local currency settings)
var withThreeDecimalPlaces = $"Exactly {decimalValue:F3}";
// String value is "Exactly 120.500"
var integerValue = 57;
var prefixedIfNecessary = $"{integerValue:D5}";
// String value is "00057"
Live-Demo auf .NET Fiddle
#-Syntax
- $"Inhalt {Ausdruck} Inhalt"
- $"Inhalt {Ausdruck:Format} Inhalt"
- $"Inhalt {Ausdruck} { {Inhalt in geschweiften Klammern} } Inhalt}"
- $"Inhalt {Ausdruck:Format} { { Inhalt in geschweiften Klammern } } Inhalt}"
# Bemerkungen
String-Interpolation ist eine Abkürzung für string.Format()
Methode, die es einfacher macht, Zeichenfolgen mit darin enthaltenen Variablen- und Ausdruckswerten zu erstellen.
var name = "World";
var oldWay = string.Format("Hello, {0}!", name); // returns "Hello, World"
var newWay = $"Hello, {name}!"; // returns "Hello, World"