ホームページ  >  記事  >  バックエンド開発  >  C# でデリゲートとイベント ハンドラーを使用する方法

C# でデリゲートとイベント ハンドラーを使用する方法

PHPz
PHPzオリジナル
2023-10-08 08:17:15909ブラウズ

C# でデリゲートとイベント ハンドラーを使用する方法

C# でデリゲートとイベント ハンドラーを使用する方法には、具体的なコード例が必要です

C# では、デリゲートとイベント ハンドラーは 2 つの非常に重要な概念です。イベントの実装に使用できます。 -駆動型プログラミング モデル。デリゲートはメソッドをパラメーターとして渡すためのメカニズムを提供し、イベント ハンドラーは特定のイベントのメソッドを処理するために使用されます。この記事では、C# でデリゲートとイベント ハンドラーを使用する方法と、具体的なコード例を詳しく紹介します。

まず、委任とは何かを理解する必要があります。デリゲートはメソッドへの参照として考えることができ、特定のメソッドのアドレスを保存し、必要に応じてそのメソッドを呼び出すために使用できます。 C# では、特定の署名を持つデリゲート型を定義することによってデリゲートが作成されます。以下に例を示します。

public delegate void MyDelegate(string message);

public class MyClass
{
    public void MyMethod(string message)
    {
        Console.WriteLine("MyMethod被调用,参数为:" + message);
    }
}

上の例では、文字列型パラメータを受け入れて null を返すことができる、MyDelegate という名前のデリゲート型を定義しました。次に、1 つのパラメーターを受け取り、渡されたパラメーターを出力するメソッド MyMethod を定義します。

次に、デリゲートを使用して MyMethod メソッドを呼び出すことができます。例は次のとおりです。

MyClass myObject = new MyClass();
MyDelegate myDelegate = new MyDelegate(myObject.MyMethod);
myDelegate("Hello World!");

上の例では、まず MyClass myObject のインスタンスを作成し、次に MyDelegate myDelegate のインスタンスを作成し、myObject.MyMethod をパラメータとして myDelegate に渡します。最後に、myDelegate("Hello World!") を呼び出し、文字列「Hello World!」をパラメータとしてメソッドに渡して、MyMethod メソッドが実行されます。

上記の例に加えて、匿名メソッドまたはラムダ式を使用してデリゲートを作成することもできます。匿名メソッドを使用した例を次に示します。

MyDelegate myDelegate = delegate (string message)
{
    Console.WriteLine("匿名方法被调用,参数为:" + message);
};

myDelegate("Hello World!");

上記の例では、匿名メソッドを使用してデリゲート myDelegate を作成し、前の例と同じように呼び出しました。

次に、イベント ハンドラーを見てみましょう。イベント ハンドラーは、特定のイベントを処理するためのメソッドです。 C# のイベントは、クラスにイベント メンバーを定義することによって実装されます。以下に例を示します。

public class MyEventClass
{
    public event MyDelegate MyEvent;

    public void RaiseEvent(string message)
    {
        if (MyEvent != null)
        {
            MyEvent(message);
        }
    }
}

上の例では、MyEvent という名前のイベントを定義します。イベントのタイプは、前に定義した MyDelegate デリゲート タイプです。次に、イベントをトリガーする RaiseEvent というメソッドを定義します。

次に、MyEventClass のインスタンスを作成し、イベント ハンドラーをイベントに関連付けます。例は次のとおりです。

MyEventClass myEventObject = new MyEventClass();
myEventObject.MyEvent += myDelegate;

myEventObject.RaiseEvent("Hello World!");

上の例では、まず MyEventClass myEventObject のインスタンスを作成し、イベント ハンドラー myDelegate をイベント MyEvent に関連付けます。次に、myEventObject.RaiseEvent("Hello World!") を呼び出してイベントをトリガーします。

要約すると、デリゲートとイベント ハンドラーは、C# でイベント駆動型プログラミングを実装するための重要な概念です。デリゲートを使用すると、メソッドをパラメータとして渡し、必要に応じてそのメソッドを呼び出すことができます。イベント ハンドラーを使用すると、特定のイベントの処理メソッドを定義し、イベントがトリガーされたときにこれらのメソッドを実行できます。この記事が、C# のデリゲートとイベント ハンドラーを理解して適用するのに役立つことを願っています。

(注: 上記のコード例は参照のみを目的としており、具体的な実装はプロジェクトの要件に応じて異なる場合があります。)

以上がC# でデリゲートとイベント ハンドラーを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。