Suche…


Syntax

  • $ "content {expression} content"
  • $ "content {expression: format} content"
  • $ "Inhalt {Ausdruck} {{Inhalt in geschweiften Klammern}} Inhalt}"
  • $ "Inhalt {Ausdruck: Format} {{Inhalt in Klammern}} Inhalt}"

Bemerkungen

String-Interpolation ist eine Abkürzung für die string.Format() -Methode, die das Erstellen von Strings mit Variablen- und Ausdruckswerten erleichtert.

var name = "World";
var oldWay = string.Format("Hello, {0}!", name);  // returns "Hello, World"
var newWay = $"Hello, {name}!";                   // returns "Hello, World"

Ausdrücke

Vollständige Ausdrücke können auch in interpolierten Strings verwendet werden.

var StrWithMathExpression = $"1 + 2 = {1 + 2}"; // -> "1 + 2 = 3"

string world = "world";
var StrWithFunctionCall = $"Hello, {world.ToUpper()}!"; // -> "Hello, WORLD!"

Live-Demo zu .NET-Geige

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 die DateTime.ToString Methode verwenden, um das DateTime Objekt zu formatieren. 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 zu .NET-Geige

Live-Demo mit DateTime.ToString

Hinweis: MM steht für Monate und mm für Minuten. Seien Sie vorsichtig, wenn Sie diese verwenden, da Fehler Fehler verursachen können, die möglicherweise schwer zu entdecken sind.

Einfache Verwendung

var name = "World";
var str = $"Hello, {name}!";
//str now contains: "Hello, World!";

Hinter den Kulissen

Innerlich das

$"Hello, {name}!" 

Wird wie folgt kompiliert:

string.Format("Hello, {0}!", name);

Auffüllen der Ausgabe

String kann so formatiert werden, dass ein Auffüllparameter akzeptiert wird, der angibt, wie viele Zeichenpositionen der eingefügte String verwenden soll:

${value, padding}

HINWEIS: Positive Auffüllwerte geben die linke Auffüllung an und negative Auffüllwerte geben die rechte Auffüllung an.

Linke Polsterung

Ein linker Abstand von 5 (fügt vor dem Wert von number 3 Leerzeichen hinzu, sodass insgesamt 5 Zeichenpositionen in der resultierenden Zeichenfolge verwendet 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 zu .NET-Geige

Rechte Polsterung

Die rechte Auffüllung, die 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 zu .NET-Geige

Auffüllen mit Formatangaben

Sie können vorhandene Formatierungsbezeichner auch in Verbindung mit dem Auffüllen 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 zu .NET-Geige

Zahlen in Strings formatieren

Sie können einen Doppelpunkt und die numerische Standardformatsyntax 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 zu .NET-Geige



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow