BitArray の内部構造(int[] 32 ビットパッキング)、サポートインターフェース、And/Or/Xor/Not 等のビット演算、bool[] や HashSet<int> との比較、エラトステネスの篩などの使いどころを整理します。
非ジェネリックな可変長配列 ArrayList の内部構造、サポートインターフェース、操作ごとの計算量、ボックス化コスト、List<T> との比較と移行戦略を整理します。
Lazy<T> による遅延初期化の意味とメリット、スレッドセーフティモード、AsyncLazy パターン、シングルトンや重い依存性管理での実践的な使いどころを整理します。
Dispose パターンの完全形を、基本形・SafeHandle 推奨形・継承対応形・IAsyncDisposable 併用形の 4 パターンに分けてサンプルコードで整理します。
IDisposable / Dispose() の役割、using 文・using 宣言(C# 8.0)・IAsyncDisposable を、Finalize() の代替としての位置付けから整理します。
System.Object.Finalize() の役割、~ClassName() デストラクタ構文、ファイナライズキューと世代昇格、ファイナライザを書くべき場面と避けるべき場面を整理します。
System.GC クラスの主要 API(Collect、KeepAlive、SuppressFinalize、AddMemoryPressure、TryStartNoGCRegion 等)の役割・使いどころ・注意点を実例で整理します。
IComparable による自然順序の定義、IComparer を使った複数ソート戦略、カスタムソート型のパターン、Comparison<T> デリゲートや LINQ との使い分けを実例で解説します。
ICloneable の役割と Clone() の契約、MemberwiseClone() による浅いコピー、再帰的な深いコピーの実装、ICloneable の設計上の問題点と代替パターンを実例で解説します。
IEnumerable と IEnumerator の役割、foreach との関係、yield return/break によるイテレータメソッド、C# 7.0 のローカル関数ガード句、名前付きイテレータのパターンを実例で解説します。