Metody generyczne w języku C#

Metoda generyczna - metoda nie definiująca typów.


Istnieje możliwość deklarowania metod generycznych. Metoda generyczna może przyjmować parametry oraz zwracać wartość różnego typu w zależności od wywołania. Poniższa metoda zwraca typ generyczny i pobiera parametr generyczny. A więc jeśli podamy jako parametr typ string zostanie również zwrócony typ string, natomiast jeśli podamy jako parametr typ int to metoda zwróci wartość typu int.

Przykładowy kod metody generycznej:

class Program
{
 
    static void Main(string[] args)
    {
        var inty = GenerycznaMetoda<int>(12);
        Console.WriteLine("Metoda z parametrem int: " + inty);
 
        var stringi = GenerycznaMetoda<string>("napis");
        Console.WriteLine("Metoda z parametrem string: " + stringi);
 
        Console.ReadKey();
    }

    public static T GenerycznaMetoda<T>(T parametr)
    {
        return parametr;
    }          
}
W powyższym przykładzie podaliśmy, jaki typ przekazujemy do metody jednak nie musimy tego robić. Kompilator na podstawie parametru sam potrafi rozpoznać typu przekazywanego parametru. Efekt działania metod będzie taki sam. Poniżej przykład wywołania tej samej metody z podaniem i bez podania typu danych.
var stringi = GenerycznaMetoda<string>("napis");
Console.WriteLine("Metoda z podaniem typu parametru: " + stringi);
 
var stringi1 = GenerycznaMetoda("napis");
Console.WriteLine("Metoda bez podania typu parametru: " + stringi1);
Przyjęło się że parametry generyczne zapisujemy literą "T" jednak może to być dowolne inne słowo. Ważne są tutaj natomiast nawiasy < > które mówią że mamy do czynienia z typami generycznymi.
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):