Как обрабатываются нулевые значения в интерполяции строк С#?

В С# 6.0 добавляются строковые интерполяции.

string myString = $"Value is {someValue}";

Как нулевые значения обрабатываются в приведенном выше примере? (если someValue равно null)

EDIT: Чтобы уточнить, я протестировал и осознал, что это не подвело, вопрос был открыт, чтобы определить, есть ли какие-либо случаи, о которых нужно знать, где мне нужно будет проверить нули перед использованием строковой интерполяции.

Ответ 1

Это так же, как string.Format("Value is {0}", someValue) который проверит null ссылку и заменит ее пустой строкой. Тем не менее, он выдаст исключение, если вы на самом деле передаете null как эта string.Format("Value is {0}", null). Однако в случае $"Value is {null}" это значение null устанавливается в качестве аргумента первым и не будет выбрасываться.

Ответ 2

Из TryRoslyn он декомпилируется как:

string arg = null;
string.Format("Value is {0}", arg);

и String.Format будут использовать пустую строку для значений null. В Краткое описание метода Format

Если значение аргумента null, элемент формата заменяется на String.Empty.