マネージド コードの "拡張デザイン ガイドライン規則" 規則セット

Microsoft "拡張デザイン ガイドライン規則" 規則セットは、基本デザイン ガイドライン規則を拡張して、使いやすさと保守容易性に関して報告される問題の検出範囲を最大化します。 特に、命名に関するガイドラインに重点が置かれています。 プロジェクトにライブラリ コードが含まれる場合や、最高レベルの基準を適用して、保守が容易なコードを記述する場合は、この規則セットの使用を検討してください。

拡張デザイン ガイドライン規則には、"基本デザイン ガイドライン規則" 規則セットのすべての規則が含まれます。この規則セットには、"推奨されるマネージド規則" 規則セットの規則が含まれます。

次の表では、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 に対して正しくテストします
CA1000 ジェネリック型の静的メンバーを宣言しません
CA1002 ジェネリック リストを公開しません
CA1003 汎用イベント ハンドラーのインスタンスを使用します
CA1004 ジェネリック メソッドは型パラメーターを指定しなければなりません
CA1005 ジェネリック型でパラメーターを使用しすぎないでください
CA1006 ジェネリック型をメンバー シグネチャ内で入れ子にしません
CA1007 適切な場所にジェネリックを使用します
CA1008 Enums は 0 値を含んでいなければなりません
CA1010 コレクションは、ジェネリック インターフェイスを実装しなければなりません
CA1011 基本型をパラメーターとして渡すことを考慮します
CA1012 抽象型にはコンストラクターを含めません
CA1013 オーバーロードする加算および減算で、演算子 equals をオーバーロードします
CA1014 アセンブリに CLSCompliantAttribute を設定します
CA1017 アセンブリに ComVisibleAttribute を設定します
CA1018 属性を AttributeUsageAttribute に設定します
CA1019 属性引数にアクセサーを定義します
CA1023 インデクサーを多次元にすることはできません
CA1024 適切な場所にプロパティを使用します
CA1025 反復する引数を params 配列で置き換えます
CA1026 既定パラメーターを使用することはできません
CA1027 列挙型を FlagsAttribute に設定します
CA1028 列挙ストレージは Int32 でなければなりません
CA1030 適切な場所にイベントを使用します
CA1031 一般的な例外の種類はキャッチしません
CA1032 標準例外コンストラクターを実装します
CA1034 入れ子にされた型を参照可能にすることはできません
CA1035 ICollection の実装は、厳密に型指定されたメンバーを含んでいます
CA1036 比較可能な型でメソッドをオーバーライドします
CA1038 列挙子は厳密に型指定されていなければなりません
CA1039 リストは厳密に型指定されています
CA1041 ObsoleteAttribute メッセージを指定します
CA1043 インデクサーには整数または文字列引数を使用します
CA1044 プロパティを書き込み専用にすることはできません
CA1046 参照型で、演算子 equals をオーバーロードしないでください
CA1047 シールド型の保護されたメンバーを宣言しません
CA1048 シールド型の仮想メンバーを宣言しません
CA1050 名前空間で型を宣言します
CA1051 参照可能なインスタンス フィールドを宣言しません
CA1052 スタティック ホルダー型はシールドされていなければなりません
CA1053 スタティック ホルダー型はコンストラクターを含むことはできません
CA1054 URI パラメーターを文字列にすることはできません
CA1055 URI 戻り値を文字列にすることはできません
CA1056 URI プロパティを文字列にすることはできません
CA1057 文字列 URI オーバーロードが、System.Uri オーバーロードを呼び出します
CA1058 型は、一定の基本型を拡張することはできません
CA1059 メンバーは特定の具象型を公開できません
CA1064 例外は public として設定する必要があります
CA1500 変数名はフィールド名と同一にすることはできません
CA1502 メソッドの実装を複雑にしすぎないでください
CA1708 識別子は、大文字と小文字の区別以外にも相違していなければなりません
CA1716 識別子はキーワードと同一にすることはできません
CA1801 使用されていないパラメーターの確認
CA1804 使用されていないローカルを削除します
CA1809 ローカルを使用しすぎないでください
CA1810 参照型の静的フィールドをインラインで初期化します
CA1811 呼び出されていないプライベート コードを使用しません
CA1812 インスタンス化されていない内部クラスを使用しません
CA1813 アンシールド属性を使用しません
CA1814 複数次元の配列ではなくジャグ配列を使用します
CA1815 equals および operator equals を値型でオーバーライドします」を参照してください。
CA1819 プロパティは、配列を返すことはできません
CA1820 文字列の長さを使用して空の文字列をテストします
CA1822 メンバーを static に設定します
CA1823 使用されていないプライベート フィールドを使用しません
CA2201 予約された例外の種類を発生させません
CA2205 Win32 API に相当するマネージド API を使用します
CA2208 引数の例外を正しくインスタンス化します
CA2211 非定数フィールドは表示されません
CA2217 列挙型を FlagsAttribute に設定しません
CA2219 exception 句に例外を発生させないでください
CA2221 ファイナライザーは保護されなければなりません
CA2222 継承されたメンバーの参照範囲を縮小しません
CA2223 メンバーは、戻り値の型以外にも異なる点がなければなりません
CA2224 オーバーロードする演算子 equals で Equals をオーバーライドします
CA2225 演算子オーバーロードには名前付けされた代替が存在します
CA2226 演算子は対称型オーバーロードを含まなければなりません
CA2227 Collection プロパティは読み取り専用でなければなりません
CA2230 可変引数に対して param を使用します
CA2234 文字列の代わりに System.Uri オブジェクトを渡します
CA2239 省略可能なフィールドに、逆シリアル化メソッドを指定します
CA1020 型をほとんど含まない名前空間を使用しません
CA1021 out パラメーターを使用しません
CA1040 空のインターフェイスは使用しません
CA1045 型を参照によって渡しません
CA1062 パブリック メソッドの引数の検証
CA1501 継承を使用しすぎないでください
CA1504 紛らわしいフィールド名を確認します
CA1505 メンテナンスできないコードを使用しないでください
CA1506 クラス結合度を大きくしすぎないでください
CA1700 列挙型値に 'Reserved' という名前を指定しません
CA1701 リソース文字列の複合語は、大文字と小文字を正しく区別しなければなりません
CA1702 複合語では、大文字と小文字が正しく区別されなければなりません
CA1703 リソース文字列は正しく入力されなければなりません
CA1704 識別子は正しく入力されなければなりません
CA1707 識別子はアンダースコアを含むことはできません
CA1709 識別子では、大文字と小文字が正しく区別されなければなりません
CA1710 識別子は、正しいサフィックスを含んでいなければなりません
CA1711 識別子は、不適切なサフィックスを含むことはできません
CA1712 列挙型値を型名のプレフィックスにしません
CA1713 イベントは、before または after プレフィックスを含むことはできません
CA1714 フラグ列挙型は、複数形の名前を含んでいなければなりません
CA1715 識別子は正しいプレフィックスを含んでいなければなりません
CA1717 FlagsAttribute 列挙型のみが複数形の名前を含んでいなければなりません
CA1719 パラメーター名はメンバー名と同一にすることはできません
CA1720 識別子には型名を含めないでください
CA1721 プロパティ名は get メソッドと同一にすることはできません
CA1722 識別子は不適切なプレフィックスを含むことはできません
CA1724 型名は名前空間と同一にすることはできません
CA1725 パラメーター名は基本宣言と同一でなければなりません
CA1726 適切な用語を使用します
CA2204 リテラルに正しいスペルを要求