How are null values in C# string interpolation handled?
C#C# 6.0C# Problem Overview
In C# 6.0, string interpolations are added.
string myString = $"Value is {someValue}";
How are null values handled in the above example? (if someValue
is null)
EDIT: Just to clarify, I have tested and am aware that it didn't fail, the question was opened to identify whether there are any cases to be aware of, where I'd have to check for nulls before using string interpolation.
C# Solutions
Solution 1 - C#
That's just the same as string.Format("Value is {0}", someValue)
which will check for a null
reference and replace it with an empty string. It will however throw an exception if you actually pass null
like this string.Format("Value is {0}", null)
. However in the case of $"Value is {null}"
that null
is set to an argument first and will not throw.
Solution 2 - C#
From TryRoslyn, it's decompiled as;
string arg = null;
string.Format("Value is {0}", arg);
and String.Format
will use empty string for null
values. In The Format method in brief section;
> If the value of the argument is null
, the format item is replaced with
> String.Empty
.