Táto stránka pre svoju správnu funkčnosť vyžaduje súbory cookies. Slúžia na authentifikáciu návštevníka, analýzu návštevnosti a reklamnú personalizáciu.
logo Knowledge base KB
mobile

Metóda ako parameter

Nie len premenné alebo objekty môžu byť použité ako vstupný parameter pre metódu. V prípade potreby, je možné ako parameter použiť aj referenciu na inú metódu.

Prvým krokom je zadefinovanie delegáta, ktorý bude "predpisovať" požadované náležitosti pre metódu, ktorú chceme predať ako parameter. Konkrétne hovorí o jej vstupných parametroch a návratovej hodnote.

Zdrojový kód:
public delegate void DataProcessMthd(System.Data.DataTable Data);

Takto zadefinovaný delegát bude nahrádzať požadovaný typ vstupného parametra

Zdrojový kód:
private static void GetData(DataProcessMthd Mthd)
{
    DataTable Data = new DataTable();
    Data.Columns.Add(new DataColumn("ID", typeof(int)));
    Data.Columns.Add(new DataColumn("Name", typeof(string)));

    Data.Rows.Add(1, "Eva");
    Data.Rows.Add(2, "Mike");
    Data.Rows.Add(2, "John");


    Mthd(Data);
}

Metóda v príklade vytvorí dáta vo forme System.Data.DataTable a následné ich predá do metódy, ktorá prišla ako parameter.

Predávaná metóda môže vyzerať nasledovne:

Zdrojový kód:
private static void DoDataProcess(DataTable Data)
{
    Console.WriteLine("Rows count: " + Convert.ToInt32(Data.Rows.Count));
}

Metódu predávame rovnako ako akúkoľvek premennú:

Zdrojový kód:
static void Main(string[] args)
{
    GetData(DoDataProcess);
}

Keywords: C#, Method, Delegate

Codeblog