C# Language
Stränginterpolering
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 ochmm
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