为什么我的抽象基 class 中会出现此编译错误?

Why am I getting this compilation error in my abstract base class?

我正在尝试扩展此插件以供我自己使用...

https://github.com/jamesmontemagno/Xamarin.Plugins/blob/master/Connectivity/Connectivity/Connectivity.Plugin.Abstractions/BaseConnectivity.cs

但是当我将代码复制到 Visual Studio 时,出现了一些错误。

是否需要导入一些特殊的框架才能使用'=>'运算符和'Invoke'方法?这是一个抽象基础class。我正在使用 VS2013

?。是 C# 6 的一项功能,以及 => 运算符(当用于表达式体成员时)仅在 Visual Studio 2015 中可用。

在此处了解它们 null-conditional operators and here => operator

C# < 6 语法:

protected virtual void OnConnectivityChanged(ConnectivityChangedEventArgs e)
{
    if (ConnectivityChanged != null)
        ConnectivityChanged.Invoke(this, e);
}

?. 在 C#6 中是 Null-conditional operators。你正在使用 C#6? C#6 featured

将此代码替换为

if(ConnectivityChanged != null) 
{ 
    ConnectivityChanged.Invoke(this, e); 
} 

这相当于我们的代码ConnectivityChanged?.Invoke(this, e);

这应该可以做到。

protected virtual void OnConnectivityChanged(ConnectivityChangedEventArg e)
{
   if(ConnectivityChanged != null)
   {
       ConnectivityChanged.Invoke(this,e);
   }
}