2012-12-26 4 views
1

Je suis nouveau à MVC (C#) et ne connais pas certaines des utilisations de ce qui ressemble à une flèche ou un opérateur de comparaison. Je ne peux pas dire ce que ça veut dire.En C# qu'est-ce que cela signifie (m => m.Titre)

J'ai vu ce utilisé dans de nombreux domaines dans MVC (C#)

Que signifie "=>" pour? Est-ce une flèche ou est-ce un opérateur de comparaison?

Exemple 1: return storeDB.Albums.Orderby(a => a.Price)

Exemple 2: .ForEach(a => context.Albums.Add(a));

Exemple 3: bool isValid = storeDB.Orders.Any(o => o.OrderId == id && o.Username == User.Identity.Name);

Exemple 4: var addedAlbum = storeDB.Albums .Single(album => album.AlbumId == id);

Exemple 5: @Html.HiddenFor(model => model.Id)

Veuillez expliquer en termes simples pour comprendre. Merci.

+4

Vous devriez probablement apprendre le C# en premier, avant d'entrer dans ASP.NET MVC. –

+0

Il est difficile de savoir comment vous expliquer les expressions lambda sans savoir à quel point vous êtes familier avec C#. Avez-vous une formation en Java ou dans une autre langue OO? –

Répondre

3

Ceci est un lambda expressions - raccourci pour créer anonymous methods (c'est-à-dire des délégués). L'opérateur => est un opérateur goes to. Ce qui sépare les paramètres de méthode anonymes du corps de méthode anonyme.


storeDB.Albums.Orderby(a => a.Price) 

nous avons ici méthode anonyme qui accepte l'album en tant que paramètre. Cet album va au corps, qui renvoie la valeur de la propriété Price de l'album. Même avec la syntaxe des délégués:

delegate(Album a) { return a.Price; } 

Ou avec méthode nommée:

private decimal GetAlbumPrice(Album a) 
{ 
    return a.Price; 
} 

Comme vous pouvez le voir, la syntaxe d'expression lambda est la forme la plus courte pour atteindre même résultat.

0

vous devriez lire ceci http://msdn.microsoft.com/en-us/library/bb397687.aspx.

Les Lambdas en termes simples sont des fonctions essentiellement anonymes qui peuvent être utilisées pour créer des délégués ou des types d'expression. C'est un raccourci pratique pour écrire des délégués (c'est une façon trop simpliste de le faire)