マネージド コードの "基本正確性規則" 規則セット

"基本正確性規則" 規則セットは、論理エラーと、フレームワーク API の使用における一般的なエラーを特に取り上げています。 基本正確性規則には、マネージド推奨規則規則セットの規則が含まれています。

次の表に、"Microsoft 基本正確性規則" 規則セットのすべての規則を示します。

ルール 説明
CA1001 破棄可能なフィールドを所有する型は、破棄可能でなければなりません
CA1009 イベント ハンドラーを正しく宣言します
CA1016 アセンブリに AssemblyVersionAttribute を設定します
CA1033 インターフェイス メソッドは、子型によって呼び出し可能でなければなりません
CA1049 ネイティブ リソースを所有する型は、破棄可能でなければなりません
CA1060 P/Invoke を NativeMethods クラスに移動します
CA1061 基底クラス メソッドを非表示にしません
CA1063 IDisposable を正しく実装します
CA1065 予期しない場所に例外を発生させません
CA1301 重複するアクセラレータを使用しません
CA1400 P/Invoke エントリ ポイントは存在しなければなりません
CA1401 P/Invoke は参照可能であることはできません
CA1403 Auto 配置の型を COM 参照可能にすることはできません
CA1404 P/Invoke の直後に GetLastError を呼び出します
CA1405 COM 参照可能な型の基本型は COM 参照可能でなければなりません
CA1410 COM 登録メソッドは一致しなければなりません
CA1415 P/Invoke を正しく宣言します
CA1821 空のファイナライザーを削除します
CA1900 値型フィールドはポータブルでなければなりません
CA1901 P/Invoke 宣言はポータブルでなければなりません
CA2002 弱い ID を伴うオブジェクト上でロックしません
CA2100 SQL クエリのセキュリティ脆弱性を確認
CA2101 P/Invoke 文字列引数に対してマーシャリングを指定します
CA2108 値型での宣言セキュリティを確認します
CA2111 ポインターは参照可能にすることはできません
CA2112 セキュリティで保護された型はフィールドを公開してはなりません
CA2114 メソッド セキュリティは型のスーパーセットでなければなりません
CA2116 APTCA メソッドは APTCA メソッドのみを呼び出すことができます
CA2117 APTCA 型は APTCA 基本型のみを拡張することができます
CA2122 リンク要求を含むメソッドを間接的に公開しません
CA2123 オーバーライドのリンク要求はベースと同一でなければなりません
CA2124 脆弱性のある finally 句を外側の try でラップします
CA2126 型のリンク要求には継承要求が必要です
CA2131 セキュリティ上重要な型は型等価性に参加してはならない
CA2132 既定のコンストラクターは、基本型の既定コンストラクターと同程度以上、重要であることが必要
CA2133 デリゲートは透過性の整合がとれたメソッドにバインドする必要がある
CA2134 メソッドは、基本メソッドをオーバーライドしている場合、透過性の整合性を保つ必要がある
CA2137 透過的メソッドは、検証可能な IL のみを含まなければならない
CA2138 透過的メソッドは、SuppressUnmanagedCodeSecurity 属性を持つメソッドを呼び出してはならない
CA2140 透過的コードは、セキュリティ上重要な項目を参照してはならない
CA2141 透過的メソッドは LinkDemand を満たしてはならない
CA2146 型は、基本型およびインターフェイスと同程度以上、重要でなければならない
CA2147 透過コードは、セキュリティ アサートを使用してはならない
CA2149 透過的メソッドは、ネイティブ コード内に呼び出しを行ってはならない
CA2200 スタック詳細を保持するために再度スローします
CA2202 オブジェクトを複数回破棄しない
CA2207 値型のスタティック フィールドのインラインを初期化します
CA2212 サービス コンポーネントを WebMethod に設定しません
CA2213 破棄可能なフィールドは破棄されなければなりません
CA2214 コンストラクターのオーバーライド可能なメソッドを呼び出しません
CA2216 破棄可能な型はファイナライザーを宣言しなければなりません
CA2220 ファイナライザーは基底クラスのファイナライザーを呼び出さなければなりません
CA2229 シリアル化コンストラクターを実装します
CA2231 ValueType.Equals のオーバーライドで、演算子 equals をオーバーロードします
CA2232 Windows フォームのエントリ ポイントを STAThread に設定します
CA2235 すべてのシリアル化不可能なフィールドを設定します
CA2236 ISerializable 型で基底クラス メソッドを呼び出します
CA2237 ISerializable 型を SerializableAttribute に設定します
CA2238 シリアル化メソッドを正しく実装します
CA2240 ISerializable を正しく実装します
CA2241 書式設定メソッドに正しい引数を提供
CA2242 NaN に対して正しくテストします
CA1008 Enums は 0 値を含んでいなければなりません
CA1013 オーバーロードする加算および減算で、演算子 equals をオーバーロードします
CA1303 ローカライズされるパラメーターとしてリテラルを渡さない
CA1308 文字列を大文字に標準化します
CA1806 メソッドの結果を無視しない
CA1816 GC.SuppressFinalize を正しく呼び出します
CA1819 プロパティは、配列を返すことはできません
CA1820 文字列の長さを使用して空の文字列をテストします
CA1903 対象のフレームワークから API のみを使用します
CA2004 GC.KeepAlive への呼び出しを削除します
CA2006 SafeHandle を使用して、ネイティブ リソースを要約します
CA2102 汎用ハンドラーの CLSCompliant でない例外をキャッチします
CA2104 読み取り専用の変更可能な参照型を宣言しません
CA2105 配列フィールドを読み取り専用にすることはできません
CA2106 アサートをセキュリティで保護します
CA2115 ネイティブ リソースを使用しているときには GC.KeepAlive を呼び出します
CA2119 プライベート インターフェイスを満たすメソッドをシールします
CA2120 シリアル化コンストラクターをセキュリティで保護します
CA2121 静的コンストラクターはプライベートでなければなりません
CA2130 セキュリティ上重要な定数は透過的である必要がある
CA2205 Win32 API に相当するマネージド API を使用します
CA2215 Dispose メソッドが基底クラスの Dispose を呼び出す必要があります
CA2221 ファイナライザーは保護されなければなりません
CA2222 継承されたメンバーの参照範囲を縮小しません
CA2223 メンバーは、戻り値の型以外にも異なる点がなければなりません
CA2224 オーバーロードする演算子 equals で Equals をオーバーライドします
CA2226 演算子は対称型オーバーロードを含まなければなりません
CA2227 Collection プロパティは読み取り専用でなければなりません
CA2239 省略可能なフィールドに、逆シリアル化メソッドを指定します