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 投稿