有人能给我解释一下下面代码中的成员访问中的问号是什么意思吗?
它是标准C_的一部分吗?在xamarin studio中尝试编译此文件时出现解析错误。

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

AnalyzerFileReference.cs第195行

最佳答案

它是c 6中引入的Null Propagation operator,只有当objectthis.AnalyzerLoadFailed不为空时才会调用方法:

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,也可以看到here
我也曾经在C 6here

关于c# - 在C#中,成员访问中的问号是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26142574/

10-11 22:04