2016-03-22 5 views
1

Ich kenne den C# -Operator => ist ein lambda operator. Aber heute bin ich auf den Operator gestoßen, der auf diese Weise benutzt wird:Was macht der C# => Operator? (BESIDES ist ein Lambda-Operator)

static readonly ResourceDictionary ResourceDictionary = new ResourceDictionary(); 
public static ResourceDictionary MyAppResources => ResourceDictionary; 

Hier scheint es nicht zu funktionieren als ein Lambda-Operator. Kann mir jemand sagen, was dieser Operator macht, wenn er so benutzt wird?

+0

@ D-Stanley - können Sie mir zeigen, auf die Frage, dies ist ein Duplikat? – jbyrd

+0

Schauen Sie sich den Link an, der oberhalb der Frage eingefügt wurde. –

+0

Doh! OK danke. – jbyrd

Antwort

5

=> ist nicht wirklich ein Operator in diesem Zusammenhang, in dem Sinne, dass es nicht in einem Ausdruck verwendet wird. Dies ist der neue C# 6 Syntax zum Definieren Expression Behinderte Eigenschaften, ein Äquivalent

public static ResourceDictionary MyAppResources { 
    get { 
     return ResourceDictionary; 
    } 
} 

in der alten Syntax. Sie können auch Ausdruck reiche Methoden schreiben, zum Beispiel

public string ToString() => $"User [{FirstName} {LastName}]"; 

statt

public string ToString() { 
    return string.Format("User [{0} {1}]", FirstName, LastName); 
} 
+0

Interessant! Ist eine ausdrucksbasierte Methode nicht ein Lambda-Ausdruck? – jbyrd

+0

@jbyrd Ich denke, all dies ist syntaktischer Zucker: Das Ergebnis des Kompilierens von ausdrucksbasierten Methoden und Eigenschaften ist immer eine benannte Methode oder ein Getter einer benannten Eigenschaft, kein Lambda. – dasblinkenlight