在C#中,如果想在EventHandler中添加自定義參數,可以通過自定義一個EventArgs類來實現。以下是一個示例:
using System;
public class CustomEventArgs : EventArgs
{
public string CustomParameter { get; set; }
public CustomEventArgs(string customParameter)
{
CustomParameter = customParameter;
}
}
public class MyClass
{
public event EventHandler<CustomEventArgs> CustomEvent;
public void OnCustomEvent(string customParameter)
{
CustomEvent?.Invoke(this, new CustomEventArgs(customParameter));
}
}
public class Program
{
public static void Main()
{
MyClass myClass = new MyClass();
myClass.CustomEvent += HandleCustomEvent;
myClass.OnCustomEvent("Hello, World!");
}
public static void HandleCustomEvent(object sender, CustomEventArgs e)
{
Console.WriteLine("Custom Event Handler invoked with parameter: " + e.CustomParameter);
}
}
在上面的示例中,自定義了一個CustomEventArgs類,其中包含一個CustomParameter屬性用于存儲自定義參數。然后在MyClass類中聲明了一個EventHandler事件,并將其泛型參數指定為CustomEventArgs。在觸發事件時,通過new CustomEventArgs(customParameter)來創建一個CustomEventArgs對象,并將其傳遞給事件的觸發方法Invoke。在事件處理程序HandleCustomEvent中,可以通過e.CustomParameter來訪問傳遞的自定義參數。