C# Language
Stringinterpolatie
Zoeken…
Syntaxis
- $ "content {expression} content"
- $ "content {expression: format} content"
- $ "content {expression} {{content tussen accolades}} content}"
- $ "content {expression: format} {{content tussen accolades}} content}"
Opmerkingen
string.Format()
is een afkorting voor de methode string.Format()
die het eenvoudiger maakt om strings te bouwen met variabele waarden en expressiewaarden erin.
var name = "World";
var oldWay = string.Format("Hello, {0}!", name); // returns "Hello, World"
var newWay = $"Hello, {name}!"; // returns "Hello, World"
Uitdrukkingen
Volledige expressies kunnen ook worden gebruikt in geïnterpoleerde tekenreeksen.
var StrWithMathExpression = $"1 + 2 = {1 + 2}"; // -> "1 + 2 = 3"
string world = "world";
var StrWithFunctionCall = $"Hello, {world.ToUpper()}!"; // -> "Hello, WORLD!"
Datums opmaken in tekenreeksen
var date = new DateTime(2015, 11, 11);
var str = $"It's {date:MMMM d, yyyy}, make a wish!";
System.Console.WriteLine(str);
U kunt ook de methode DateTime.ToString
gebruiken om het DateTime
object op te maken. Dit levert dezelfde uitvoer op als de bovenstaande 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);
Output:
Het is 11 november 2015, doe een wens!
Live demo met DateTime.ToString
Opmerking:
MM
staat voor maanden enmm
voor minuten. Wees zeer voorzichtig wanneer u deze gebruikt, omdat fouten bugs kunnen introduceren die moeilijk te ontdekken zijn.
Eenvoudig gebruik
var name = "World";
var str = $"Hello, {name}!";
//str now contains: "Hello, World!";
Achter de schermen
Intern dit
$"Hello, {name}!"
Wordt als volgt samengesteld:
string.Format("Hello, {0}!", name);
De uitvoer opvullen
String kan worden opgemaakt om een opvulparameter te accepteren die aangeeft hoeveel tekenposities de ingevoegde string zal gebruiken:
${value, padding}
OPMERKING: Positieve opvulwaarden geven de linker opvulling aan en negatieve opvulwaarden geven de rechter opvulling aan.
Padding links
Een linker opvulling van 5 (voegt 3 spaties toe vóór de waarde van het getal, zodat het in totaal 5 tekenposities inneemt in de resulterende tekenreeks.)
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);
Output:
The answer to life, the universe and everything is 42.
Juiste vulling
Rechter opvulling, die een negatieve opvulwaarde gebruikt, voegt spaties toe aan het einde van de huidige waarde.
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);
Output:
The answer to life, the universe and everything is 42 .
Opvulling met opmaakspecificaties
U kunt ook bestaande opmaakspecificaties gebruiken in combinatie met opvulling.
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 ";
// ^^^^^
Getallen opmaken in tekenreeksen
U kunt een dubbele punt en de syntaxis van het standaard numerieke formaat gebruiken om te bepalen hoe getallen worden opgemaakt.
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"