WeakDelegateによるイベントメモリリーク対策の実装

前回の記事ではイベントによるメモリリーク問題と弱参照(WeakReference)を応用した解決策について触れました。今回は具体的なWeakDelegateの実装方法について詳細に説明します。 イベントの参照メカニズム .NETのイベントはデフォルトでサブスクライバーに対して強参照を保持します。この仕組みにより、イベントハンドラが登録されたままのオブジェクトはガベージコレクシ ...

7月4日 17:11 投稿

C#におけるメソッド型の抽象化:delegate、Action、Func、Predicateの活用

メソッドを値として扱えるようにするための型安全な仕組みがC#の「デリゲート」です。これは単なる関数ポインタの代替ではなく、コンパイル時型チェックを伴う第一級の言語機能であり、コールバック、イベント処理、LINQ演算子など、多くの高水準パターンの基盤となります。 1. 主要なデリゲート型の特徴と用途 ・カスタムデリゲート(delegate キーワード) 明示的にシ ...

7月3日 17:53 投稿

C#におけるforeach、LINQ、デリゲートによるコレクション検索のパフォーマンス比較

前日にLINQのパフォーマンスについて議論した際、自分はLINQが性能劣化していると考えていたが、実際にはLINQも特定の面では優れた性能を発揮するものであることを学んだ。ただし、LINQ to SQLについては別として、以下に簡単なパフォーマンステストのコードを示す。このテストではDateTimeではなくStopwatchを使用して計測している点に注意が必要である。初心者の私は最初 ...

5月17日 20:00 投稿