溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#中可為NULL的運(yùn)算符怎么用

發(fā)布時(shí)間:2021-12-01 09:12:40 來(lái)源:億速云 閱讀:180 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹了C#中可為NULL的運(yùn)算符怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

?.和?[]

null條件運(yùn)算符在C#6以后可用,僅當(dāng)操作數(shù)為非null時(shí)才會(huì)訪問(wèn)成員或者訪問(wèn)元素。?.和?[]很好區(qū)分;我們知道'.'是訪問(wèn)成員或者命空間啥的,'[]' 索引器訪問(wèn),以下演示運(yùn)算符的用法:

 static double? SumNumbers(List<double[]> setsOfNumbers, int indexOfSetToSum)
       {
           //如果 setsOfNumbers 非空,訪問(wèn)指定的索引;如果對(duì)應(yīng)元素的索引不為空,求和
           return setsOfNumbers?[indexOfSetToSum]?.Sum() ;
       }
       
 var sum1 = SumNumbers(null, 0);
           Console.WriteLine(sum1??Double.NaN);  // 輸出: NaN

           var numberSets = new List<double[]> { new[] { 1.0, 2.0, 3.0 }, null };

           var sum2 = SumNumbers(numberSets, 0);
           Console.WriteLine(sum2 ?? Double.NaN);  // 輸出: 6

           var sum3 = SumNumbers(numberSets, 1);
           Console.WriteLine(sum3 ?? Double.NaN);  // 輸出: NaN

??

NUll 合并運(yùn)算符,什么意思?就是如果這個(gè)值為空,就使用另外一個(gè)值, a??b,如果a為非null,則結(jié)果為a;否則結(jié)果為b。僅當(dāng)a為null時(shí),操作才計(jì)算b。常用場(chǎng)景比如:使用throw表達(dá)式作為??運(yùn)算符的右操作數(shù),檢測(cè)數(shù)據(jù)、當(dāng)獲取為空時(shí)賦值默認(rèn)值等等。

var comment = _blogService.GetBlogCommentById(id)
               ?? throw new ArgumentException("指定的id為查到對(duì)應(yīng)數(shù)據(jù)!", nameof(id));

??=

運(yùn)算符 ??= 是在C#8.0引入的 null 合并賦值運(yùn)算符。什么意思?就是當(dāng)左操作數(shù)計(jì)算為null時(shí),才能使用運(yùn)算符??= 將其有操作符的值 賦值給左操作數(shù)。實(shí)例代碼如下:

List<int> numbers = null;
           int? i = null;

           numbers ??= new List<int>();
           numbers.Add(i ??= 66);
           numbers.Add(i ??= 99);

           //等價(jià)于一下代碼
           //if (i==null)
           //{
           //    i = 66;
           //    numbers.Add(i.Value);
           //}

           //if (i == null)
           //{
           //    i = 99;
           //}
           //numbers.Add(i.Value);


           Console.WriteLine(string.Join(" ", numbers));  // 輸出: 66 66
           Console.WriteLine(i);  // output: 66

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C#中可為NULL的運(yùn)算符怎么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI