How are null values in C# string interpolation handled?
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.
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 withString.Empty
.