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!"

Live demo op .NET Fiddle

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 op .NET Fiddle

Live demo met DateTime.ToString

Opmerking: MM staat voor maanden en mm 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.

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.

Live demo op .NET Fiddle

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   .

Live demo op .NET Fiddle

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 ";
//                                                           ^^^^^

Live demo op .NET Fiddle

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"

Live demo op .NET Fiddle



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow