web-dev-qa-db-fra.com

Comment sont gérées les valeurs nulles dans l'interpolation de chaîne C #?

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.

36
Calle

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é.

19
juharr

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é par String.Empty.

14
Soner Gönül