2016-03-01 12 views
14

Qual è la differenza tra questi due modi per aggiungere qualcosa?Qual è la differenza tra = e => per una variabile?

private string abc => "def"; 

E

private string abc = "def"; 
+5

Il primo definisce una proprietà 'get' privata, la seconda un campo privato con un valore iniziale –

+1

Funnily è possibile utilizzare [tryroslyn] (http://goo.gl/Ee1dXQ) per vedere la differenza nel codice compilato e quindi decompilato tra i due (nel riquadro di destra) – xanatos

+0

@ Me.Name: Please non scrivere risposte nella sezione commenti. –

risposta

25

Questa è la dichiarazione di un classico campo come è sempre esistita in C#:

private string abc = "def"; 

il campo viene immediatamente assegnato un valore iniziale.


Questa è una sintassi abbreviata per dichiarare un getter proprietà di sola (o proprietà espressione di corpo), introdotta in C# 6:

private string abc => "def"; 

E 'una strada più breve per scrivere il seguente:

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

Se si desidera che una fonte ufficiale legga queste informazioni, Consentitemi di fornire: https://msdn.microsoft.com/en-gb/magazine/dn802602.aspx –

+3

@DavidWatts Questa non è una fonte ufficiale. È solo la rivista msdn. Chiunque può scrivere lì. –

+1

@DavidWatts In realtà è SriramSakthivel che ha scritto l'articolo sotto lo pseudonimo "Mark Michaelis". Vai a capire ... –

Problemi correlati