为什么我在抽象基类中出现此编译错误?
我正在尝试扩展此插件供我自己使用…
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); } }