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

②ラムダでthisを意図せずキャプチャ

出典: C# のコールバック・デリゲート・イベントの違いを業務SEが30分で腹落ちさせるハマりポイント3つ—俺が踏んだやつ / ②ラムダでthisを意図せずキャプチャ

②ラムダでthisを意図せずキャプチャ (csharp)#d9122f66523e
// ❌ NG:ラムダで登録すると、解除しようとしても同じ参照が作れない
manager.DataUpdated += data => this.Process(data);
// ↓これだと別のラムダ→解除できない
manager.DataUpdated -= data => this.Process(data);
 
// ✅ OK:メソッド参照で登録すれば同じ参照で解除できる
manager.DataUpdated += this.Process;
manager.DataUpdated -= this.Process;
 
// ✅ OK:ラムダを変数に保存しておいて同じ参照を使う
Action<DataPayload> handler = data => this.Process(data);
manager.DataUpdated += handler;
//あとで
manager.DataUpdated -= handler;
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #d9122f66523e
  • lines: 14
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「ハマりポイント3つ—俺が踏んだやつ / ②ラムダでthisを意図せずキャプチャ」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

9
図鑑トップ