Je souhaite interpoler non seulement les jetons d'une chaîne, mais également le format lui-même. Voici un exemple en utilisant string.Format
qui charge la chaîne de format à partir d'une variable locale:Interpolation des chaînes de format dans les chaînes interpolées
object boxedDate = DateTime.Today;
var dateFormat = "MM-dd-yyyy";
var dateString = string.Format($"{{0:{dateFormat}}}", boxedDate);
Avec la syntaxe de chaîne interpolée, cependant, il semble que la partie de format de la chaîne est purement littérale. Conceptuellement, je voudrais faire quelque chose comme ceci:
dateString = $"{boxedDate:{dateFormat}}";
Ne fonctionne pas, bien sûr. Je sais que je pourrais unbox le datetime et invoquer .ToString()
comme ceci:
dateString = $"{((DateTime)boxedDate).ToString(dateFormat)}";
... mais qui me demande de connaître le type à l'exécution. Cela peut être un nombre décimal, un nombre entier, une date, etc.
Ce n'est pas un briseur d'affaire ou quoi que ce soit. Je pourrais toujours utiliser string.Format
s'il n'y a aucun moyen de le faire avec une syntaxe de chaîne interpolée.