C#中的问号运算符是什么意思?

时间:2017-05-30 18:34:13

标签: c#

首先,我已经了解了三元语句。但是,我最近看到了一段这样的代码:

public void DoSomething(Result result)
{
    return result?.Actions?.Utterance;
}

这里使用的问号运算符是什么?

2 个答案:

答案 0 :(得分:0)

这是null conditional运算符:

  

用于在执行成员访问(?。)或索引之前测试null   (?[]操作。

您使用方法的代码而不使用空条件运算符,可以按如下方式编写:

public void DoSomething(Result result)
{
    if(result!=null)
    {
        if(result.Actions!=null)
        {
            return result.Actions.Utterance;
        }
        else
        {
            return null;
        }
    }
    else
    {
        return null;
    }

}

答案 1 :(得分:-2)

此运算符是null条件if语句的缩写形式:

public void DoSomething(Result result)
{
    if(result != null){
        if(result.Actions != null){
            return result.Actions.Utterance;
        }
    }
    return null;
}