How are null values in C# string interpolation handled?

C#C# 6.0

C# 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCalleView Question on Stackoverflow
Solution 1 - C#juharrView Answer on Stackoverflow
Solution 2 - C#Soner GönülView Answer on Stackoverflow