Sök…


Syntax

  • $ "innehåll {expression} innehåll"
  • $ "content {expression: format} content"
  • $ "content {expression} {{content in braces}} content}"
  • $ "content {expression: format} {{content in braces}} content}"

Anmärkningar

Stränginterpolering är en kortfattning för string.Format() som gör det lättare att bygga strängar med variabla och uttrycksvärden inuti dem.

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

uttryck

Fullständiga uttryck kan också användas i interpolerade strängar.

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

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

Live-demonstration på .NET Fiddle

Formatera datum i strängar

var date = new DateTime(2015, 11, 11);
var str = $"It's {date:MMMM d, yyyy}, make a wish!";
System.Console.WriteLine(str);

Du kan också använda DateTime.ToString metoden för att formatera DateTime objektet. Detta ger samma utgång som koden ovan.

var date = new DateTime(2015, 11, 11);
var str = date.ToString("MMMM d, yyyy");
str = "It's " + str + ", make a wish!";
Console.WriteLine(str);

Produktion:

Det är den 11 november 2015, gör en önskan!

Live-demonstration på .NET Fiddle

Live Demo med DateTime.ToString

Obs: MM står i månader och mm i minuter. Var mycket försiktig när du använder dessa eftersom misstag kan införa buggar som kan vara svåra att upptäcka.

Enkel användning

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

Bakom kulisserna

Internt detta

$"Hello, {name}!" 

Kommer att sammanställas till något liknande:

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

Polstring av utgången

Sträng kan formateras för att acceptera en stoppningsparameter som anger hur många teckenpositioner den infogade strängen kommer att använda:

${value, padding}

OBS: Positiva stoppningsvärden indikerar vänster stoppning och negativa stoppningsvärden indikerar höger polstring.

Vänster stoppning

En vänster stoppning av 5 (lägger till 3 mellanslag före värdet på antalet, så det tar totalt 5 teckenpositioner i den resulterande strängen.)

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);

Produktion:

The answer to life, the universe and everything is    42.

Live-demonstration på .NET Fiddle

Höger stoppning

Höger stoppning, som använder ett negativt stoppningsvärde, lägger till mellanslag i slutet av det aktuella värdet.

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);

Produktion:

The answer to life, the universe and everything is 42   .

Live-demonstration på .NET Fiddle

Polstring med formatspecifikationer

Du kan också använda befintliga formateringsspecifikationer i samband med utfyllnad.

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-demonstration på .NET Fiddle

Formatera siffror i strängar

Du kan använda en kolon och syntaxen för det numeriska formatet för att kontrollera hur siffrorna formateras.

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-demonstration på .NET Fiddle



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow