C#

[C#] Null 條件運算子(Null Conditional Operators)

Posted by Harry Chang on July 14, 2017

今天在同仁的Code裡面看到陌生的運算子,如下:

1
2
3
4
5
private string GetCustomerDetail(Customer customer)
        {
            var id = customer?.Id ?? "123456";
       //ToDo....
        }

先不管這個Method的用處,看內容會發現「?.」「??」這些運算子是什麼用處呢?

原來這個運算子的用法是用來判斷物件是否為空,若不為空進一步去判斷物件內的Property是否為空,若其中一個為空,則會回傳「??」後的值,

簡單來說就是下面這段Code的精簡版:

1
2
3
4
5
6
7
8
        private void GetCustomerDetail(Customer customer)
        {
            string id;
            if (customer == null || customer.Id == null)
            {
                id = "123456";
            }
        }

透過Null 條件運算子,我們可以把上面這段Code 精簡成一行,以後大家有類似的判斷不妨試試這樣的用法。

參考: Null 條件運算子 (C# 和 Visual Basic)



icon_wechat.png