成员访问中的问号在C#中意味着什么?

有人可以向我解释以下代码中成员访问中的问号是什么意思?

它是标准C#的一部分吗? 尝试在Xamarin Studio中编译此文件时出现解析错误。

this.AnalyzerLoadFailed?.Invoke(this, new AnalyzerLoadFailureEventArgs(AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers, null, null)); 

AnalyzerFileReference.cs第195行

它是在C#6中引入的Null Propagation运算符 ,只有当对象this.AnalyzerLoadFailed不为null时才会调用该方法:

 this.AnalyzerLoadFailed?.Invoke(this, new AnalyzerLoadFailureEventArgs(AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers, null, null)); 

等于:

 if( this.AnalyzerLoadFailed != null) this.AnalyzerLoadFailed.Invoke(this, new AnalyzerLoadFailureEventArgs(AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers, null, null)); 

参见C#6.0 – Null Propagation Operator ,你也可以在这里看到

我也曾在这里写过关于c#6即将推出的这个function

在C#版本6中,它将是简写

 if (this.AnalyzerLoadFailed != null) this.AnalyzerLoadFailed.Invoke(this, new AnalyzerLoadFailureEventArgs(AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers, null, null));