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
public event Action<int, double> OnSomethingHappened;