是否存在链式NULL检查?

Ang*_*ker 7 .net c#

我有以下丑陋的代码:

if (msg == null || 
    msg.Content == null || 
    msg.Content.AccountMarketMessage == null || 
    msg.Content.AccountMarketMessage.Account == null ||
    msg.Content.AccountMarketMessage.Account.sObject == null) return;
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中检查空值,以便我不必检查每个单独的级别?

Ree*_*sey 9

C#6中的一个提议是添加一个新的Null Propogation运算符.

这将(希望)允许你写:

var obj = msg?.Content?.AccountMarketMessage?.Account?.sObject;
if (obj == null) return;
Run Code Online (Sandbox Code Playgroud)

不幸的是,此时语言中没有任何内容可以解决这个问题.