En C # 6.0, des interpolations de chaînes sont ajoutées.
string myString = $"Value is {someValue}";
Comment les valeurs nulles sont-elles gérées dans l'exemple ci-dessus? (si someValue
est nul)
EDIT: Juste pour clarifier, j'ai testé et je suis conscient que cela n'a pas échoué, la question a été ouverte pour identifier s'il y a des cas à connaître, où je devrais vérifier null avant d'utiliser l'interpolation de chaîne.
C'est exactement la même chose que string.Format("Value is {0}", someValue)
qui recherchera une référence null
et la remplacera par une chaîne vide. Il lèvera cependant une exception si vous passez réellement null
comme ceci string.Format("Value is {0}", null)
. Cependant, dans le cas de $"Value is {null}"
que null
est d'abord défini sur un argument et ne sera pas lancé.
De TryRoslyn , il est décompilé en tant que;
string arg = null;
string.Format("Value is {0}", arg);
et String.Format
utilisera une chaîne vide pour les valeurs null
. In La méthode Format en bref section;
Si la valeur de l'argument est
null
, l'élément de format est remplacé parString.Empty
.