2024年1月9日火曜日

C#での、CUIベースのアプリケーションでのイベントの処理方法について教えてください

 C#でのCUIベースのアプリケーションでのイベントの処理方法は、以下の2つの方法があります。

  1. 標準入力から入力を読み取る
  2. イベントハンドラを使用する

標準入力から入力を読み取る

標準入力から入力を読み取る方法は、最も基本的な方法です。この方法では、Console.ReadLine()関数を使用して、ユーザーの入力を読み取ります。

たとえば、次のコードは、ユーザーがキーボードで文字を入力すると、その文字を画面に表示するアプリケーションです。

C#
while (true)
{
    // ユーザーの入力を読み取る
    string input = Console.ReadLine();

    // 入力を画面に表示する
    Console.WriteLine(input);
}

このコードを実行すると、ユーザーがキーボードで文字を入力すると、その文字が画面に表示されます。

イベントハンドラを使用する

イベントハンドラを使用する方法は、より高度な方法です。この方法では、イベントが発生したときに実行されるコードを、イベントハンドラとして定義します。

たとえば、次のコードは、ユーザーがキーボードでEnterキーを押したときに、メッセージを表示するアプリケーションです。

C#
// イベントハンドラを定義する
private void OnEnterPressed(object sender, ConsoleCancelEventArgs e)
{
    // メッセージを表示する
    Console.WriteLine("Enterキーが押されました");
}

// イベントハンドラを登録する
Console.CancelKeyPress += OnEnterPressed;

// イベントループを実行する
while (true)
{
    // イベントループを待機する
    Console.ReadKey();
}

このコードを実行すると、ユーザーがEnterキーを押すと、次のメッセージが表示されます。

Enterキーが押されました

イベントハンドラを登録するには、Console.CancelKeyPressなど、イベントが発生するイベントに関連するプロパティまたはイベントをオーバーライドします。

イベントの種類

CUIベースのアプリケーションで発生するイベントの種類は、次のとおりです。

  • Console.CancelKeyPress:Enterキーが押されたときに発生するイベント
  • Console.KeyDown:キーボードのキーが押されたときに発生するイベント
  • Console.KeyUp:キーボードのキーが離されたときに発生するイベント

イベントハンドラ

イベントハンドラは、イベントが発生したときに実行されるコードです。関数として定義します。関数には、イベントの種類を表す引数を渡すことができます。

オプションの引数

オプションの引数は、イベントハンドラに渡される追加の情報を指定するために使用できます。たとえば、Console.CancelKeyPressイベントのオプションの引数は、押されたキーのコードを表す整数です。

0 件のコメント:

コメントを投稿