Recherche…


Syntaxe

  • $ "content {expression} content"
  • $ "content {expression: format} content"
  • $ "content {expression} {{content entre accolades}} content}"
  • $ "content {expression: format} {{content entre accolades}} content}"

Remarques

L'interpolation de chaînes est un raccourci pour la méthode string.Format() qui facilite la création de chaînes avec des valeurs de variable et d'expression à l'intérieur.

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

Expressions

Les expressions complètes peuvent également être utilisées dans les chaînes interpolées.

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

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

Démo en direct sur .NET Fiddle

Format des dates en chaînes

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

Vous pouvez également utiliser la méthode DateTime.ToString pour formater l'objet DateTime . Cela produira la même sortie que le code ci-dessus.

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

Sortie:

C'est le 11 novembre 2015, faites un voeu!

Démo en direct sur .NET Fiddle

Démo en direct à l'aide de DateTime.ToString

Note: MM représente les mois et les mm pour les minutes. Soyez très prudent lorsque vous utilisez ceux-ci, car des erreurs peuvent introduire des bugs qui peuvent être difficiles à détecter.

Utilisation simple

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

Dans les coulisses

En interne ce

$"Hello, {name}!" 

Sera compilé à quelque chose comme ça:

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

Rembourrage de la sortie

La chaîne peut être formatée pour accepter un paramètre de remplissage qui spécifie le nombre de positions de caractères que la chaîne insérée utilisera:

${value, padding}

REMARQUE: Les valeurs de remplissage positives indiquent le remplissage à gauche et les valeurs de remplissage négatives indiquent le remplissage à droite.

Rembourrage Gauche

Un remplissage de gauche de 5 (ajoute 3 espaces avant la valeur du nombre, il prend donc un total de 5 positions de caractères dans la chaîne résultante).

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

Sortie:

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

Démo en direct sur .NET Fiddle

Rembourrage Droit

Le remplissage à droite, qui utilise une valeur de remplissage négative, ajoutera des espaces à la fin de la valeur actuelle.

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

Sortie:

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

Démo en direct sur .NET Fiddle

Rembourrage avec spécificateurs de format

Vous pouvez également utiliser des spécificateurs de formatage existants en conjonction avec un remplissage.

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

Démo en direct sur .NET Fiddle

Mise en forme des nombres dans les chaînes

Vous pouvez utiliser deux points et la syntaxe de format numérique standard pour contrôler le formatage des nombres.

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"

Démo en direct sur .NET Fiddle



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow