在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
參數來獲取事件的發送者,并輸出事件的數據。