Beim Erstellen von eigenen Eventhandlern kann man der generischen EventHandler<T>-Klasse seit .NET 4.5 auch Typen übergeben, die nicht von EventArgs erben.
public EventHandler<string> MyEvent;
Bei .NET 4.0 oder älter ist das nicht möglich, weswegen man eine Klasse wie hier gezeigt einsetzen kann.
Benötigter NamespaceSystem
/// <summary>
/// Stellt Informationen des Typs <typeparamref name="T"/> für ein Ereignis bereit.
/// </summary>
/// <typeparam name="T">Der Typ der bereit gestellten Informationen.</typeparam>
public class DataTransportEventArgs<T> : EventArgs
{
/// <summary>
/// Erstellt eine neu Instanz der <see cref="DataTransportEventArgs{T}"/> Klasse unter angabe des zu übertragenden Objekts.
/// </summary>
/// <param name="data">Das zu übertragende Objekt.</param>
public DataTransportEventArgs(T data)
{
this.Data = data;
}
/// <summary>
/// Ruft das übertragene Objekt ab.
/// </summary>
public T Data { get; private set; }
}
Kommentare zum Snippet