亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# null 條件運算符在調用異步任務時有什么不同嗎?

C# null 條件運算符在調用異步任務時有什么不同嗎?

C#
慕桂英3389331 2023-04-29 09:53:13
之間有什么區別嗎await myObject.fooAsync();和await myObject?.fooAsync();當 myObject 為 null 時,它們似乎拋出相同的異常:未將對象引用設置為對象的實例。任何人都可以對此有所了解嗎?
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

當 myObject 為 null 時,它們似乎拋出相同的異常:未將對象引用設置為對象的實例。

當然,但出于不同的原因。

當您使用 null 條件運算符時,如果應用該運算符的任何元素為 null,則它所涉及的表達式的計算結果將為 null。

當您不使用運算符時,您會得到一個NullReferenceException, 因為您無法調用fooAsync()空引用。當您確實使用該運算符時,您會遇到相同的異常,但這次是因為您不能等待空引用。

這個故事的寓意是:你不能隨便?.在你的代碼中四處亂竄,然后期望它變得空安全。那不是它的作用。它只是常用的與 null 相關的表達式的簡寫。您仍然需要擔心空引用,因為空條件運算符本身可以生成空引用。


查看完整回答
反對 回復 2023-04-29
  • 1 回答
  • 0 關注
  • 129 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號