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 with String.Empty.