マネージド コードの "基本正確性規則" 規則セット
"基本正確性規則" 規則セットは、論理エラーと、フレームワーク 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 | 省略可能なフィールドに、逆シリアル化メソッドを指定します |
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示