2016-03-01 13 views
14

Was ist der Unterschied zwischen diesen beiden Möglichkeiten, etwas hinzuzufügen?Was ist der Unterschied zwischen = und => für eine Variable?

private string abc => "def"; 

Und

private string abc = "def"; 
+5

Die erste definiert eine private 'Get'-Eigenschaft, die zweite ein privates Feld mit einem Anfangswert –

+1

Lustigerweise können Sie den [tryroslyn] (http://goo.gl/Ee1dXQ) verwenden, um den Unterschied im kompilierten und dann dekompilierten Code zwischen den beiden zu sehen (im rechten Bereich) – xanatos

+0

@ Me.Name: Please Schreibe keine Antworten in den Kommentarbereich. –

Antwort

25

Dies ist die Erklärung eines klassischen Feld, wie es immer in C# existiert hat:

private string abc = "def"; 

Das Feld sofort einen Anfangswert zugewiesen wird.


Dies ist eine Kurz Syntax für eine Getter geschützte Eigenschaft erklärt (oder Ausdruck reiche Eigenschaft), ist in C# 6:

private string abc => "def"; 

Es ist ein kurzer Weg die schreiben folgende:

private string abc 
{ 
    get { return "def"; } 
} 
+1

Wenn Sie eine offizielle Quelle für diese Informationen lesen möchten, Erlauben Sie mir zu bieten: https://msdn.microsoft.com/en-gb/magazine/dn802602.aspx –

+3

@DavidWatts Das ist keine offizielle Quelle. Es ist nur msdn Magazin. Jeder kann dort schreiben. –

+1

@DavidWatts Es ist tatsächlich SriramSakthivel, der den Artikel unter dem Alias ​​"Mark Michaelis" geschrieben hat. Go figure ... –

Verwandte Themen