Что это за дополнительный запрос у оператора нулевого слияния
У меня есть это условно:
if (dr_dados["DAT_SAIDA"] != null)
{
txtDataSaida.Text = "";
}
else
{
txtDataSaida.Text = dr_dados["DAT_SAIDA"].ToString();
}
Я использую ReSharper от Jetbrain, и он сказал мне, что я могу превратиться в троичную операцию.
Итак, стало так:
txtDataSaida.Text = (dr_dados["DAT_SAIDA"] != null) ? dr_dados["DAT_SAIDA"].ToString() : "";
Но потом он сказал мне, что я могу превратиться в операцию нулевого слияния, и дал мне это:
txtDataSaida.Text = dr_dados["DAT_SAIDA"]?.ToString() ?? "";
Я вроде знаю, что делает операция нулевого слияния, но было что-то другое, что-то, чего я раньше не видел, и я хотел бы знать, что это такое.
Этот дополнительный опрос прямо здесь:
v
txtDataSaida.Text = dr_dados["DAT_SAIDA"]?.ToString() ?? "";
Что это значит?
1 ответ
Решение
Это нуль-условный оператор.
Он используется для проверки на нулевое значение перед выполнением доступа к элементу. Если член, к которому вы собираетесь получить доступ, на самом деле null
, тогда не будет исключений, а скорее null
значение будет возвращено.