英語で読む

次の方法で共有


EventArgs クラス

定義

イベント データを格納するクラスの基底クラスを表し、イベント データを含まないイベントに使用する値を提供します。

public class EventArgs
[System.Serializable]
public class EventArgs
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class EventArgs
継承
EventArgs
派生
属性

次の例は、 クラスから派生する という名前 ThresholdReachedEventArgs のカスタム イベント データ クラスを EventArgs 示しています。 イベント データ クラスのインスタンスは、イベントのイベント ハンドラーに ThresholdReached 渡されます。

using System;

namespace ConsoleApplication3
{
    public class Program3
    {
        public static void Main()
        {
            Counter c = new(new Random().Next(10));
            c.ThresholdReached += c_ThresholdReached;

            Console.WriteLine("press 'a' key to increase total");
            while (Console.ReadKey(true).KeyChar == 'a')
            {
                Console.WriteLine("adding one");
                c.Add(1);
            }
        }

        static void c_ThresholdReached(object? sender, ThresholdReachedEventArgs e)
        {
            Console.WriteLine("The threshold of {0} was reached at {1}.", e.Threshold,  e.TimeReached);
            Environment.Exit(0);
        }
    }

    class Counter
    {
        private readonly int _threshold;
        private int _total;

        public Counter(int passedThreshold)
        {
            _threshold = passedThreshold;
        }

        public void Add(int x)
        {
            _total += x;
            if (_total >= _threshold)
            {
                ThresholdReachedEventArgs args = new()
                {
                    Threshold = _threshold,
                    TimeReached = DateTime.Now
                };
                OnThresholdReached(args);
            }
        }

        protected virtual void OnThresholdReached(ThresholdReachedEventArgs e)
        {
            ThresholdReached?.Invoke(this, e);
        }

        public event EventHandler<ThresholdReachedEventArgs>? ThresholdReached;
    }

    public class ThresholdReachedEventArgs : EventArgs
    {
        public int Threshold { get; set; }
        public DateTime TimeReached { get; set; }
    }
}

注釈

このクラスは、イベント データを表すすべてのクラスの基底クラスとして機能します。 たとえば、 クラスは System.AssemblyLoadEventArgs から EventArgs 派生し、アセンブリ読み込みイベントのデータを保持するために使用されます。 カスタム イベント データ クラスを作成するには、 クラスから派生したクラスを EventArgs 作成し、必要なデータを格納するためのプロパティを指定します。 カスタム イベント データ クラスの名前は で EventArgs終わる必要があります。

データを含まないオブジェクトを渡すには、 フィールドを Empty 使用します。

イベントの詳細については、イベントの 処理と発生 に関する記事を参照してください。

コンストラクター

EventArgs()

EventArgs クラスの新しいインスタンスを初期化します。

フィールド

Empty

イベント データのないイベントに使用する値を提供します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください