2017-05-30 37 views
-6

首先,我已經知道三元陳述。不過,我最近看到這樣的一段代碼:什麼是C#中的問號運算符的意思?

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

用於這裏什麼問號操作?

+3

更好愚蠢:https://stackoverflow.com/questions/28352072/what-does-question-mark-and-dot-operator-mean-in-c-sharp-6-0(這也是第二個結果,當你谷歌'c#問號運算符') – aquinas

+0

問題如何什麼是空條件運算符是什麼問題的空值條件運算符是什麼等效於JavaScript的副本? – juharr

回答

0

這是null conditional操作者:(?)

用於測試空執行的成員訪問之前或索引 操作([?)。

你方法的,而無需使用空有條件的經營者也可以寫成下面的代碼:

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

} 
+1

這個問題似乎是一個確切的重複;希望OP會刪除它。 –

-2

這個操作符是短格式的空條件if語句:

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