2010-05-27 4 views
2

J'ai une jolie question pour toi. Je continue à voir cette syntaxe:Que signifie "=>"?

<%= Html.LabelFor(model => model.Email) %> 

... et je n'ai aucune idée de ce que signifie =>. Je pensais que c'était une syntaxe pour le framework d'entité linq2sql ou ado.net mais j'utilise simplement ado.net. Je ne comprends pas pourquoi le VWD a utilisé cette syntaxe lors de la génération du formulaire Créer.

Que signifie => signifie?

+0

duplication possible de [Comment prononcer "=>" comme utilisé dans les expressions lambda dans .Net] (http://stackoverflow.com/ questions/274022/how-do-i-prononcer-comme-utilisé-dans-lambda-expressions-in-net) –

Répondre

8

est une expression lambda, cela signifie « va à »

c'est un très bon lien pour expliquer here

le côté gauche est l'entrée du côté droit de l'expression ou un bloc d'instructions, vous êtes ici appeler la méthode LabelFor en entrant le modèle et en utilisant le champ Email sur le modèle transmis.

+0

Pourquoi ne serait-il pas juste écrire la ligne comme Html.LabelFor (Model.Email)? – quakkels

+1

@quakkels car la signature pour LabelFor prend une expression comme seul paramètre, pas une chaîne, cela vous permet de passer une expression lambda pour définir le champ à utiliser plutôt que la valeur du champ, cela signifie que LabelFor peut utiliser les attributs définis sur le champ – Pharabus

+0

ok je vois. Merci – quakkels

1

Jetez un oeil à Lambda Expressions (C# Programming Guide)

Toutes les expressions lambda utilisent l'opérateur lambda =>, qui est lu comme "va". Le côté gauche de l'opérateur lambda spécifie les paramètres d'entrée (le cas échéant) et le côté droit contient l'expression ou le bloc d'instructions. L'expression lambda x => x * x est lue "x va à x fois x".