Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm trying to extend this plugin for my own use...

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

But when I copy the code over to Visual Studio, I'm am getting some error.

enter image description here

Do I need to import some special framework in order to use the '=>' operator and 'Invoke' Method? This is an abstract base class. I am using VS2013

like image 997
stepheaw Avatar asked Dec 08 '15 17:12

stepheaw


2 Answers

?. is a feature from C# 6, and as well as the => operator (when used for expression-bodied members), is available in Visual Studio 2015 only.

Read about them here null-conditional operators and here => operator

C# < 6 syntax:

protected virtual void OnConnectivityChanged(ConnectivityChangedEventArgs e)
{
    if (ConnectivityChanged != null)
        ConnectivityChanged.Invoke(this, e);
}
like image 186
Camilo Terevinto Avatar answered Oct 28 '22 18:10

Camilo Terevinto


?. is Null-conditional operators in C#6. You is using C#6? C#6 featured

Replace this code to

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

This is equivalent to the our code ConnectivityChanged?.Invoke(this, e);

like image 44
Alexcei Shmakov Avatar answered Oct 28 '22 19:10

Alexcei Shmakov