Что это за дополнительный запрос у оператора нулевого слияния

У меня есть это условно:

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 значение будет возвращено.

Другие вопросы по тегам