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

时间:2015-12-08 17:09:21

标签: c# visual-studio xamarin abstract-class

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

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

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

enter image description here

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

3 个答案:

答案 0 :(得分:14)

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

在此处null-conditional operators=> operator

了解相关信息

C#< 6语法:

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

答案 1 :(得分:4)

C#6中的{p> ?.Null-conditional operators。你正在使用C#6? C#6 featured

将此代码替换为

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

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

答案 2 :(得分:2)

这应该这样做。

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