C# EventHandlerにカスタム引数を渡す方法【実践例付き】

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に指定されています。イベントをトリガーする際に、CustomEventArgsオブジェクトをnew CustomEventArgs(customParameter)で作成し、それをイベントのトリガーメソッドInvokeに渡します。イベントハンドラHandleCustomEventでは、渡されたカスタムパラメータにアクセスするためにe.CustomParameterを使用できます。

bannerAds