次の方法で共有


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

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

"拡張デザイン ガイドライン規則" には、"Microsoft 基本デザイン ガイドライン規則" 内のすべての規則が含まれます。"基本デザイン ガイドライン規則" には、"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

透過的メソッドは LinkDemands を満たすことはできません

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

enums を FlagsAttribute に設定します

CA1028

列挙ストレージは Int32 でなければなりません

CA1030

適切な場所にイベントを使用します

CA1031

一般的な例外の種類はキャッチしません

CA1032

標準例外コンストラクターを実装します

CA1034

入れ子にされた型を参照可能にすることはできません

CA1035

ICollection の実装は、厳密に型指定されたメンバーを含んでいます

CA1036

比較可能な型でメソッドをオーバーライドします

CA1038

列挙子は厳密に型指定されていなければなりません

CA1039

リストは厳密に型指定されています

CA1041

ObsoleteAttribute メッセージを指定します

CA1043

インデクサーには整数または文字列引数を使用します

CA1044

プロパティを書き込み専用にすることはできません

CA1046

参照型で、演算子 equals をオーバーロードしないでください

CA1047

Sealed 型の保護されたメンバーを宣言しません

CA1048

Sealed 型の仮想メンバーを宣言しません

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

enums を FlagsAttribute に設定しません

CA2219

exception 句に例外を発生させないでください

CA2221

ファイナライザーは保護されなければなりません

CA2222

継承されたメンバーの参照範囲を縮小しません

CA2223

メンバーは、戻り値の型以外にも異なる点がなければなりません

CA2224

演算子の Equals のオーバーロードのオーバーライドである

CA2225

演算子オーバーロードには名前付けされた代替が存在します

CA2226

演算子は対称型オーバーロードを含まなければなりません

CA2227

Collection プロパティは読み取り専用でなければなりません

CA2230

可変引数に対して param を使用します

CA2234

文字列の代わりに System.Uri オブジェクトを渡します

CA2239

省略可能なフィールドに、逆シリアル化メソッドを指定します

CA1020

型をほとんど含まない名前空間を使用しません

CA1021

out パラメーターを使用しません

CA1040

空のインターフェイスは使用しません

CA1045

型を参照によって渡しません

CA1062

パブリック メソッドの引数の検証

CA1501

継承を使用しすぎないでください

CA1504

紛らわしいフィールド名を確認します

CA1505

メンテナンスできないコードを使用しないでください。

CA1506

クラス結合度を大きくしすぎないでください。

CA1700

enum 値に 'Reserved' という名前を指定しません

CA1701

リソース文字列の複合語は、大文字と小文字を正しく区別しなければなりません

CA1702

複合語では、大文字と小文字が正しく区別されなければなりません

CA1703

リソース文字列は正しく入力されなければなりません

CA1704

識別子は正しく入力されなければなりません。

CA1707

識別子はアンダースコアを含むことはできません

CA1709

識別子では、大文字と小文字が正しく区別されなければなりません

CA1710

識別子は、正しいサフィックスを含んでいなければなりません

CA1711

識別子は、不適切なサフィックスを含むことはできません

CA1712

enum 値を型名のプレフィックスにしません

CA1713

イベントは、before または after プレフィックスを含むことはできません

CA1714

フラグ列挙は、複数形の名前を含んでいなければなりません

CA1715

識別子は正しいプレフィックスを含んでいなければなりません

CA1717

FlagsAttribute 列挙のみが複数形の名前を含んでいなければなりません

CA1719

パラメーター名はメンバー名と同一にすることはできません

CA1720

識別子には型名を含めないでください

CA1721

プロパティ名は get メソッドと同一にすることはできません

CA1722

識別子は不適切なプレフィックスを含むことはできません。

CA1724

型名は名前空間と同一にすることはできません

CA1725

パラメーター名は基本宣言と同一でなければなりません

CA1726

適切な用語を使用します

CA2204

リテラルに正しいスペルを要求