Igor Kulman

Zjednodušenie eventov v C# 4 pomocou Action

· Igor Kulman

Ak chcete v C# vytvoriť event máte niekoľko možností. Môžete najprv definovať delegát požadovaného typu

public delegate void SomethingHappened(int a, string s);

A následne definovať event vyvolávajúci metódy priradené danému delegátu

public event SomethingHappened OnSomethingHappened;

Tento spôsob vyzerá dosť zložito a neprehľadne a určite by som ho neodporúčal.

Ďalšou možnosťou je definícia typovaného event handleru

public event EventHandler OnSomethingHappened;

kde SomethingHappenedEventArgs je (ideálne) potomkom EventArgs a obsahuje požadované parametre

public class SomethingHappenedEventArgs: EventArgs   
{ 
    public int A {get;set;}  
    public string S {get;set;}  
}

V C# 4 je možné eventy používať ešte jednoduchšie bez nutnosti vytvárania nových tried pomocou delegáta Action, ktorý môže mať 0 až 16 parametrov.

public event Action<int, double> OnSomethingHappened;