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 のローカル関数ガード句、名前付きイテレータのパターンを実例で解説します。
インターフェース参照の取得(as/is)、パラメータ・戻り値・配列での活用、C# 8.0 の既定実装・static メンバ、インターフェース階層の設計を実例とともに整理します。
インターフェースの本質を抽象クラスとの比較で整理し、定義の制約と代表的な派生パターン(単一継承、System.Object との関係、基底クラス+インターフェース、複数インターフェース、struct からの実装)をコード例つきでまとめます。
ArgumentException 系、InvalidOperationException、NotSupportedException など、.NET の代表的な標準例外を使いどころ別に整理します。
catch の when による例外フィルタリング、AggregateException の処理パターン、ExceptionDispatchInfo によるスタックトレース保持を整理します。