ホームページ  >  記事  >  バックエンド開発  >  C# イベントハンドラー

C# イベントハンドラー

PHPz
PHPzオリジナル
2024-09-03 15:28:561089ブラウズ

C# プログラミング言語の EventHandler は、コーダーによってプログラムされ、意図したときに非同期で実行されるようにイベントを処理する責任があります。すべてのプログラミング言語にはそれぞれの機能と制限があり、イベント ハンドラーはプログラムを適切に実行するための優れた機能の 1 つです。

私たちは、発生するイベントはアクションであり、ボタンをクリックしてから機能を実行するなど、別のアクションの結果であることを理解しています。デリゲートはイベントハンドラーの重要な部分であり、作成されるとメソッドイベントハンドラーを対象とします。

構文:

イベントハンドラーとは何かを理解したので、次にそれについてさらに学習しましょう。関数またはメソッドの構文は重要な部分であり、イベント ハンドラー メソッドの簡単な構文は次のとおりです。

public delegate void SimpleEH(int a, int b);
  • デリゲート キーワードに気づいたはずですが、これは特別なタイプであり、純粋にメソッドを表します。そして、私たちが持つ 2 つの引数は object と EventArgs ですが、これらは異なる目的を持つ可能性があります。
  • 上記の単純なデリゲートには、整数の 2 つのパラメーターを受け取り、整数を返すイベント処理メソッドを指す基本的な操作があります。メソッドのこの構文は名前空間のレベルで宣言でき、これにより、ネストされたクラスでそれを繰り返す必要がないという単純なルールが実装されます。

C# で EventHandler はどのように動作しますか?

C# のイベントハンドラーとそのそれぞれの構文が何であるかについてよく学びました。ただし、イベントハンドラーの動作を理解することは重要な部分であり、より適切な実装に役立ちます。プログラム内のすべての動きやステップはイベントであり、イベントハンドラーによって処理されます。イベントハンドラーのメソッドがあり、そのメソッドを指すためにデリゲートが使用されます。ここで、デリゲートは、クラス、インターフェイス、構造体、列挙、デリゲートの 5 つの型のうちの任意の型にすることができます。

構文をすでに学習したデリゲートのインスタンスを作成する必要があります。作成したデリゲートは、eventhandler メソッドを指しています。  ここで、.NET のすべての C# イベントは基本的にデリゲートに基づいていることを覚えておく必要があります。

基本的に、イベントに応答するには、イベント レシーバー内でイベント ハンドラー メソッドを定義する必要があります。より適切に実装するには、イベントを表すデリゲートの署名が、現在処理しているイベントのメソッドと一致する必要があります。

C# EventHandler の実装例

以下に挙げる例を示します:

例 #1

eventhandler メソッドとその構文、およびその動作を理解しました。次に実装に移ります。ここでは、版を印刷して実行するプログラムを作成します。

コード:

using System;
public delegate int EHsample(int a, int b);
class Program {
static void Main() {
Adder a = new Adder();
EHsample instanceEHsample = new EHsample(a.Add);
int sampleOutput = instanceEHsample(4, 3);
Console.WriteLine("\n sampleOutput = {0}", sampleOutput);
}
}
public class Adder {
public int Add(int x, int y)
{ return x + y; }
}

出力:

C# イベントハンドラー

説明: 私たちは単にシステムをインポートすることから始めました。続いて代表者の宣言。ここで実装している構文はすでに理解しています。デリゲートのない引数が 2 つあり、両方とも整数 a と b です。次に、main メソッドを備えたクラス Program を作成します。新しいインスタンスを備えた単純な Adder があります。プログラムのさらに奥に Adder クラスを作成しました。次に、デリゲートのインスタンスを作成し、adder インスタンスを呼び出して追加します。次に、単純に 2 つの値 (ここでは 4 と 3) を渡しました。最後に、sampleOutput = を出力する print ステートメントがあり、その後に渡した 2 つの値が加算されます。

次に、パブリック クラス Adder があり、前に渡した値に対して加算操作が行われます。 Add 関数は 2 つの引数を受け取り、両方の加算を返し、それを出力に渡します。適切な出力については、以下のスクリーンショットを参照してください:

例 #2

次に、次の例でイベントハンドラーデリゲートメソッドを実装します。

コード:

using System;
public delegate void sampleEventHandler();
class Program {
public static event sampleEventHandler _show;
static void Main() {
_show += new sampleEventHandler(Event);
_show += new sampleEventHandler(Handler);
_show.Invoke();
}
static void Event() {
Console.WriteLine("\n Event");
}
static void Handler() {
Console.WriteLine("\n Handler");
}
}

出力:

C# イベントハンドラー

説明: 最初の例と同様に、ステートメントを使用し、次にメイン メソッドを持つデリゲートとクラスの宣言を使用しました。新しいイベントをリストに追加するメソッド インスタンスを示しました。次に、Event と Handler という 2 つのイベントを追加します。わかりやすくするために、イベントには静的修飾子を使用しました。これにより、静的 Main メソッド内でイベントに直接アクセスできるようになります。

また、ここで使用されている += は算術演算とは関係ありません。出力については、以下のスクリーンショットを参照してください:

結論

すべてのイベントはアクションであり、イベントハンドラーはそのイベントを適切に処理します。デリゲートのインスタンスを作成し、必要に応じて呼び出します。デリゲート インスタンスは、eventhandler メソッドを指します。これらのイベントは Windows Forms Framework で広く使用されているイベント ハンドラーであり、スレッドの場合は BackGroundWorker 型を実装します。

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

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