reklama

Použitie delegátov v .NET časť 1.

Ak patríte medzi tých programátorov, ktorý síce vedia že delegáti existujú, ale už nevedia na čo slúžia ako ich používať, tak tento článok je práve pre Vás.

Písmo: A- | A+
Diskusia  (0)

Tento článok je písaný hlavne pre .NET verzie 1.1 v jazyku C#.

Čo sú delegáti a načo slúžia, časť 1.

Dalo by sa povedať, že sú podobné ako použitie pointerov na funkcie v iných programovacích jazykoch(C++).Znamená to, že delegáti sú tzv. ukazovatele na funkciu, ktorá sa má vykonať za určitých podmienok. Delegáta môžeme chápať ako určitú šablónu ako musí vyzerať hlavička metódy, avšak už neurčuje ako má vyzerať obsah danej metódy.

Zápis:

public delegate bool TestValueDelegate(object Value);
Určuje že nami zadaná metóda(ktorá bude neskor použitá pre delegáta) musí spĺňať tieto podmienky:

SkryťVypnúť reklamu
Článok pokračuje pod video reklamou
  1. Návratová hodnota metódy musí byť typu bool.

  2. Počet vstupných parametrov je 1 a musí byť typu object.

Naša metóda tak môže vyzerať následovne:

public bool OtestujHodnotu(object Value)

{

return (Value != null ? true : false);

}
Metóda OtestujHodnotu testuje vstupný parameter Value, a ak je Value rôzne od null tak vráti true inak false . Samozrejme toto je len ukážková metóda, ktorá nemá až taký vyznam, avšak pre pochopenie to stačí.

Reálne použitie delegáta TestValueDelegate a metódy OtestujHodnotu môže byť nasledovné:

object[] values = new object[] {1, null, "peter", null};

TestValueDelegate mTestValue = new TestValueDelegate(OtestujHodnotu);

foreach (object value in values)

{

bool result = mTestValue(value);

Console.WriteLine("Testujem hodnotu: {0}, vysledok testu: {1}", value, result);

SkryťVypnúť reklamu
reklama

}
Podrobný popis kódu:

  • Najskôr inicializujeme pole objektov do premennej values, kde druhá a posledná hodnota je null.

  • Vytvoríme si premennú typu TestValueDelegate s názvom mTestValue do ktorej konštruktora zadáme názov metódy, ktorú má delegát spustiť, v našom prípade je to metóda OtestujHodnotu.

  • Cyklom foreach prechádzame pole prvkov v premennej values, pre každý prvok v poli pomocou delegáta(zastupeného v premennej mTestValue) spustíme metódu OtestujHodnotu.

  • Metóda OtestujHodnotu vráti hodnotu true alebo false podľa toho či daný prvok z poľa values je null alebo nie, výsledok je zapísaný do premennej result.

  • Na koniec vypíšeme na obrazovku výsledok testu našej hodnoty.

V tomto ukážkovom kóde je vysvetlené použitie delegátov a zastupujúcich metód ako takých. Je možné že z daného kódu nemusí byť jasné úplné využitie delegátov.

Preto si v dalšej časti ukážeme využitie delegátov spolu s eventami, kde je využitie delegátov 100%.

Download kódu: http://www.freewebs.com/terrorix/files/blog/Delegates1.zip

Peter Šulek

Peter Šulek

Bloger 
  • Počet článkov:  2
  •  | 
  • Páči sa:  0x

Som programátor, ktorý momentálne programuje .NET aplikácie v jayzku C#. Žijem v malom meste na západe na slovenska - v bratislave. Zoznam autorových rubrík:  .NETSúkromnéNezaradené

Prémioví blogeri

Milota Sidorová

Milota Sidorová

5 článkov
Yevhen Hessen

Yevhen Hessen

20 článkov
Juraj Hipš

Juraj Hipš

12 článkov
Lucia Šicková

Lucia Šicková

4 články
Karolína Farská

Karolína Farská

4 články
reklama
reklama
SkryťZatvoriť reklamu