在C#中,成员访问中的问号意味着什么
本文关键字:意味着 什么 访问 成员 | 更新日期: 2023-09-27 18:25:10
有人能向我解释一下下面代码中成员访问中的问号是什么意思吗?
它是标准C#的一部分吗?我在Xamarin Studio中编译这个文件时遇到解析错误。
this.AnalyzerLoadFailed?.Invoke(this, new AnalyzerLoadFailureEventArgs(AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers, null, null));
AnalyzerFileReference.cs第195行
这是C#6中引入的Null传播运算符,只有当对象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–空传播运算符,也可以在此处查看
我也曾经在c#6中写过这个即将到来的特性
在C#版本6中,它将是的简写
if (this.AnalyzerLoadFailed != null)
this.AnalyzerLoadFailed.Invoke(this, new AnalyzerLoadFailureEventArgs(AnalyzerLoadFailureEventArgs.FailureErrorCode.NoAnalyzers, null, null));