2016-10-27 2 views
1

ich in GitHub ein Projekt von Visual Studio 2013 fand ich bin mit, dass Projekt mit Visual Studio 2015. Ich versuche, es zu kompilieren, aber ich erhalte eine Fehlermeldung vs2013C# 6.0 => Operator

mit

Ungültiges Token ';' in Klasse, Struktur oder Interface-Memberdeklaration

Hier Code suchen:

private readonly Log _log; 
public Log Log => _log; // What => Operator is doing ? Pointer ? 

Ja, Welche neuen Funktionen von => Betreiber in C# [6.0]? und gibt es eine Möglichkeit, C# 6.0 in vs2013 zu verwenden?

+0

http://stackoverflow.com/questions/27093908/how-to-enable-c-sharp-6-0-feature-in-visual-studio-2013 – matcheek

+4

Nein, Aktualisieren Sie Ihre VS-Version. –

+0

C# 6.0 wurde mit VS 2015 eingeführt. Es gibt keine Möglichkeit, es in VS 2013 zu verwenden. Https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#expression- bodies-on-property-like-function-members – c0d3b34n

Antwort

1

Dies ist eine Ausdruck-bodied Eigenschaft, eine neue Syntax für berechnete Eigenschaften in C# 6 eingeführt, die, wie Sie von Ihnen erstellten berechneten Eigenschaften auf die gleiche Weise läßt würde einen Lambda-Ausdruck erstellen. Also:

public int TwoTimes(int number) 
{ 
    return 2*number; 
} 

entspricht

public int TwoTimes(int number) => 2 * number; 

Hinweis: C# 6.0 wurde eingeführt mit VS 2015. Man kann es nicht mit einer früheren Version verwenden.

Ref: What does "=>" operator mean in a property in C#?

6

Es ist eine kürzere Version, eine schreibgeschützte Eigenschaft zu schreiben.

public Log Log => _log; 

gleich

public Log Log { get { return _log; } } 

Aber ich kenne keine Möglichkeit, dieses Feature in älteren Versionen zu verwenden.

0

Das Problem ist Visual Studio 2013 unterstützt nicht C# 6.0. es in einer älteren Art und Weise konvertieren, wie in der Antwort, bevor

private readonly Log _log; 
public Log Log 
{ 
    get { return _log; } 
}