コード検査: 空のコンストラクター
クラス内に空のコンストラクターを(静的かどうかにかかわらず)持つことは冗長であり、ReSharper はその効果に対して警告を出します。
ただし、特殊なケースでは、空の静的コンストラクターを使用する必要があります。4.0 より前(つまり、Lazy<T> タイプが出現する前)の .NET バージョンでシングルトンパターンを実装しようとすると、次の構成が使用されることがあります。
上では、空の静的コンストラクターは、実際には、遅延初期化を保証するために必要な詳細です。空の静的コンストラクターは、型が beforefieldinit フラグでマークされないようにします。タイプが beforefieldinit としてマークされていない場合、タイプのイニシャライザーメソッドは、静的フィールドまたはインスタンスフィールドへの最初のアクセス、またはインスタンスの最初の呼び出し、仮想メソッドまたは静的メソッドのいずれかによって実行されます。上記の例では、空のシングルトンは、最初にアクセスされたときにのみ型が初期化されることを保証します。
この動作を利用したい開発者は、この特定の警告を無効にする必要があります。C# 4.0 以降、シングルトンパターンを実装するより簡単で安全な方法があることに注意してください。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 二重否定演算子
のような二重否定は無意味であり、安全に削除することができます。唯一の例外は、否定演算子にオーバーロードがかかるなどの型です。2024 年 2 月 11 日コード検査: プロパティを自動プロパティに変換するコード検査: 空のコンストラクター