在零合并算子中这个额外的问题是什么?

本文关键字:问题 问题是 是什么 合并 | 更新日期: 2023-09-27 18:03:49

我有这个条件:

if (dr_dados["DAT_SAIDA"] != null)
    {
        txtDataSaida.Text = "";
    }
    else
    {
        txtDataSaida.Text = dr_dados["DAT_SAIDA"].ToString();
    }

我正在使用Jetbrain的ReSharper,它告诉我我可以转换成一个三元操作。

所以,它变成了:

txtDataSaida.Text = (dr_dados["DAT_SAIDA"] != null) ? dr_dados["DAT_SAIDA"].ToString() : "";

然后它告诉我,我可以转换成一个null合并操作,它给了我这个

txtDataSaida.Text = dr_dados["DAT_SAIDA"]?.ToString() ?? "";

我大概知道空合并操作是做什么的,但是有一些不同的东西,一些我以前没有见过的东西,我想知道它是什么。

这里的额外询问:

                                         v
txtDataSaida.Text = dr_dados["DAT_SAIDA"]?.ToString() ?? "";

它是什么意思?

在零合并算子中这个额外的问题是什么?

为空条件操作符。

用于在实际执行成员访问之前检查是否为空。如果您要访问的成员实际上是null,则不会抛出异常,而是返回null值。