Wyrażenia lambda w języku C#

Wyrażenia lambda - metody bez nazwy i bez określonego typu zwracanego.


Wyrażenia lambda są to maksymalnie uproszczone metody anonimowe. Wyrażenia lambda zawierają jedynie listę parametrów oraz ciało metody. Nie mają nazwy oraz nie definiują typu zwracanego.

Przykładowy kod korzystający z wyrażeń lambda:

class Delegaty
{
    public delegate int Delegata1(int arg1, int arg2);
}
class Program
{
    static void Main()
    {
        Delegaty.Delegata1 dodawanie1 = (int arg1, int arg2) =>
        {
            return arg1 + arg2;
        };
        System.Console.WriteLine("Wynik dodawania: {0}.", dodawanie1.ToString());
 
        Delegaty.Delegata1 odejmowanie1 = (int arg1, int arg2) => arg1 - arg2;
        System.Console.WriteLine("Wynik odejmowania: {0}.", odejmowanie1.ToString());
    }
}
Metody dodawanie1 i odejmowanie1 różnią sie nieznacznie od siebie jednak obie metody są to wyrażenia lambda. Nie na potrzeby używania słowa kluczowego return w ciele metody.

Wyrażenia lambda:

  • gdy wyrażenie przyjmuje jeden argument, nie musimy otaczać go nawiasami,
  • gdy ciało funkcji zawiera tylko jedną instrukcję, nie musimy używać klamerek oraz słowa kluczowego return (widoczne w metodzie odejmowanie1),
  • słowo delegate w porównaniu z metodą anonimową zastąpione jest znakiem: "=>",
  • zmienne zdefiniowane w ciele wyrażenia lambda znikają po zakończeniu działania metody,
  • można przekazywać do wyrażeń lambda parametry poprzez referencje i wyjście,
  • nie trzeba podawać typów parametrów dla zmiennych przekazanych przez wartość, natomiast wymagane jest podanie typu parametru dla zmiennych przekazanych przez referencje i wyjście,
  • zwracane wartości musza pasować do typu danej delegaty.

Więcej informacji na temat wyrażeń lambda:

http://msdn.microsoft.com/pl-pl/library/bb397687.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):