Как обрабатываются нулевые значения в интерполяции строк С#?
В С# 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
.