C# Language
Interpolation de chaîne
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 lesmm
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