Metody anonimowe w języku C#

Metody anonimowe czyli delegaty bez nazwy.


Metoda anonimowa to metoda, która nie posiada swojej nazwy. Poza tą różnicą że nie ma nazwy, metoda anonimowa zachowuje się jak zwykła metoda, czyli przyjmuje argumenty, ma swoje ciało metody oraz zwraca wartość.

Przykładowy kod korzystający z metod anonimowych:

class Delegaty
{
    public delegate int Delegata1(int arg1, int arg2);
}
 
class Program
{
    static void Main()
    { 
        Delegaty.Delegata1 dodawanie1 = delegate(int arg1, int arg2)
        {
            return arg1 + arg2;
        };
        System.Console.WriteLine("Wynik dodawania: {0}.", dodawanie1.ToString());
 
        Delegaty.Delegata1 odejmowanie1 = delegate(int arg1, int arg2)
        {
            return arg1 - arg2;
        };
        System.Console.WriteLine("Wynik odejmowania: {0}.", odejmowanie1.ToString());
    }
}
W tym przypadku nie dodawaliśmy metody do delegacji poprzez operator "+=" tylko od razu do delegaty przypisaliśmy metodę anonimową czyli bez nazwy. Metoda anonimowa zostanie wywołana tylko w przypadku korzystania z delegacji. W specyfikacji C# 3.0 razem z LINQ zostały wprowadzone wyrażenia lambda, które są jeszcze bardziej uproszczonymi metodami anonimowymi, co spowodowało że od czasów C# 3.0, metod anonimowych się już praktycznie nie używa.

Więcej na temat metod anonimowych:

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