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.
public delegate void DataProcessMthd(System.Data.DataTable Data);
Takto zadefinovaný delegát bude nahrádzať požadovaný typ vstupného parametra:
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:
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ú:
static void Main(string[] args)
{
GetData(DoDataProcess);
}
Keywords: C#, Method, Delegate