Eventuali duplicati:
What is the => token called?Qual è il nome di questo operatore =>?
Qual è il nome di questo operatore in C#?
Eventuali duplicati:
What is the => token called?Qual è il nome di questo operatore =>?
Qual è il nome di questo operatore in C#?
Viene denominato lambda operator in the MSDN docs.
Tutte le espressioni lambda utilizzano l'operatore lambda =>, che viene letto come "va a". Il lato sinistro dell'operatore lambda specifica i parametri di input (se presenti) e il lato destro contiene l'espressione o il blocco di dichiarazione . L'espressione lambda x => x * x viene letta "x passa a x volte x". Questo espressione può essere assegnato a un tipo di delegato come segue:
Se si sta parlando nel contesto di LINQ che è un lamdba operator.
Come ...
var selectedValues = myList.Where(v=>v.Name="Matt");
È possibile utilizzare questi nei propri metodi al posto di delgates. Gli usi possibili includerebbero qualcosa di simile ...
void DoWork<T>(T input, Func<T, bool> doAction, Action<T> action)
{
if (doAction(input))
action(input);
}
... utilizzo del metodo di cui sopra sarà simile ...
DoWork(5, i=>i>1, v=>Console.WriteLine(v));
... perché 5 è maggiore di 1 questo visualizzerebbe 5 sulla console.
È il lambda operator.
Come nota a margine, in Ruby è noto come l'operatore 'hashrocket'.
FWIW, a Rubyists, questo operatore è chiamato "razzo hash". (C'è anche un company with that name.)
Gli operatori Lambda non vengono utilizzati solo con LINQ. – Femaref
Credo che il mio esempio dimostri che ... ho detto nel contesto del perché avrebbe potuto vedere qualcosa di strano in un esempio come 'for (; i => 1;)' e potrebbe non rendersi conto che è un'espressione normale. La cosa ancora più divertente è che in LINQ puoi anche fare '.Seleziona (i =>" Nuovo valore ")' per creare un insieme enumerabile di "Nuovo valore" la lunghezza del set di input. –
Giusto per essere chiari, '=>' non è "l'espressione lambda" - è * parte * di esso. –