在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
参数来获取事件的发送者,并输出事件的数据。