動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

+= / -=の正体

出典: C# のコールバック・デリゲート・イベントの違いを業務SEが30分で腹落ちさせるイベントは「デリゲートを多重キャスト&カプセル化したもの」 / += / -=の正体

+= / -=の正体 (csharp)#b5d4dfa3116b
//イベントを生やすクラス側
public class FileWatcher
{
    public event Action<string> FileChanged;   // ←デリゲート型+ eventキーワード
 
    public void NotifyChange(string path)
    {
        FileChanged?.Invoke(path);   //登録されてる全handlerを順に呼ぶ
    }
}
 
//購読する側
var watcher = new FileWatcher();
watcher.FileChanged += path => Console.WriteLine($"changed: {path}");
watcher.FileChanged += path => SendMail(path);
watcher.FileChanged += MyLogger.Log;   //メソッド参照でもOK
 
//どこかで通知すると、登録された3つのhandlerが全部呼ばれる
watcher.NotifyChange("/tmp/a.txt");
▸ 実行ボタンで結果を表示
  • id: #b5d4dfa3116b
  • lines: 19
  • extracted: 2026-06-10
  • captured: 2026-06-10

Source収録記事

この snippet は記事の「イベントは「デリゲートを多重キャスト&カプセル化したもの」 / += / -=の正体」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

9
図鑑トップ