温馨提示×

c# sender在泛型事件中如何应用

c#
小樊
84
2024-07-26 17:39:10
栏目: 编程语言

在C#中,在泛型事件中,sender参数通常用于指定事件的发送者。sender参数的类型通常是泛型类型的类型参数。以下是一个示例:

public class EventPublisher<T>
{
    public event EventHandler<T> CustomEvent;

    public void RaiseCustomEvent(T data)
    {
        OnCustomEvent(data);
    }

    protected virtual void OnCustomEvent(T data)
    {
        CustomEvent?.Invoke(this, data);
    }
}

public class EventSubscriber
{
    public EventSubscriber()
    {
        var publisher = new EventPublisher<int>();
        publisher.CustomEvent += OnCustomEvent;
        publisher.RaiseCustomEvent(10);
    }

    private void OnCustomEvent(object sender, int data)
    {
        Console.WriteLine($"Received event from {sender}, data: {data}");
    }
}

在上面的示例中,EventPublisher<T>类定义了一个泛型事件CustomEvent,并在RaiseCustomEvent方法中引发事件。在EventSubscriber类中,我们创建了一个EventPublisher<int>实例,并订阅了CustomEvent事件。在事件处理程序OnCustomEvent中,我们使用sender参数来获取事件的发送者,并输出事件的数据。

0