为什么我在抽象基类中出现此编译错误?

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

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

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

在此处输入图像描述

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

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

在这里阅读有关它们的空条件运算符和here =>运算符

C#<6语法:

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

?. 是C#6中的Null-conditional operators 。 你在使用C#6? C#6精选

将此代码替换为

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

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

这应该做到这一点。

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