コードインスペクション: 空のデストラクター
空のデストラクターには、ガベージコレクターがオブジェクトを回収する前に実行しなければならない特別なアクションは含まれていません。 このようなデストラクターは、ガベージコレクターが自動的に行う処理に何も追加せず、単にオーバーヘッドを増やすだけです。
C# では、デストラクターはクラスのファイナライザーを提供するために Finalize メソッドのオーバーライドの代わりに使われます。 クラスにデストラクターがある場合、ガベージコレクターは対応するオブジェクトをファイナライズ対象としてマークし、各オブジェクトごとにいわゆるファイナライゼーションキューにエントリを追加します。 デストラクターが呼び出されると、ガベージコレクターが実行され、ファイナライゼーションキューを解析してファイナライザーを実行します。 デストラクターが空の場合、ファイナライザーにはユーザー定義の指示が含まれないため、ファイナライゼーションキューやファイナライザーに関するすべての操作は不要で、単にリソースを消費するだけです。
JetBrains Rider は、コードの可読性とパフォーマンスを向上させるために、空のデストラクターを削除することを提案します。
2026 年 6 月 12 日