更新 : 2007 年 11 月
TypeName |
StaticConstructorsShouldBePrivate |
CheckId |
CA2121 |
カテゴリ |
Microsoft.Security |
互換性に影響する変更点 |
あり |
原因
型にプライベートではない静的コンストラクタがあります。
規則の説明
静的コンストラクタ (クラス コンストラクタとも呼ばれます) は、型の初期化に使用されます。システムで静的コンストラクタが呼び出されてから、型の最初のインスタンスが作成されるか、静的メンバが参照されます。静的コンストラクタが呼び出されたとき、ユーザーは何も制御できません。静的コンストラクタがプライベートである場合、システム以外のコードから呼び出すことができます。コンストラクタで実行される操作によっては、これによって予期しない動作が発生することがあります。
C# と Visual Basic .NET のコンパイラではこの規則が必須です。
違反の修正方法
一般に、規則違反は次のアクションで発生します。
型に静的コンストラクタを定義し、プライベートにしませんでした。
プログラミング言語のコンパイラによって既定の静的コンストラクタが型に追加され、プライベートに指定されませんでした。
1 つ目の違反を修正するには、静的コンストラクタをプライベートにします。2 つ目の違反を修正するには、プライベートの静的コンストラクタを型に追加します。
警告を抑制する状況
この規則違反は抑制しないでください。ソフトウェア デザインで静的コンストラクタの明示的な呼び出しが必要である場合、デザインに重大な欠陥のある可能性が高いため、再確認が必要です。