重要な C# トピック

C#のイベント(event)

このレッスンでは、イベントを宣言し、イベントの処理を登録して、変化があったときにイベントを発生させます。

はじめに

イベント(event)を使うと、何かが起きたときに、あるオブジェクトがほかのオブジェクトへ知らせることができます。発行者と購読者(publisher/subscriber)のモデルです。ユーザーがボタンを押したときなど、画面のプログラミングでおなじみの仕組みです。

クラスCounterはイベントThresholdReachedを宣言しています。Mainでは、演算子+=でラムダをイベントの処理として登録します。ReachThreshold()が呼ばれると、演算子?.は購読者が1人以上いるときだけイベントを発生させます。外からは登録と登録解除しかできず、イベントを発生させられるのはクラスCounterだけです。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;

class Counter
{
    public event EventHandler? ThresholdReached;
    public void ReachThreshold() => ThresholdReached?.Invoke(this, EventArgs.Empty);
}

class Program
{
    static void Main()
    {
        var counter = new Counter();
        counter.ThresholdReached += (_, _) => Console.WriteLine("Threshold reached");
        counter.ReachThreshold();
    }
}
実行結果
Threshold reached

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ