以下のルールは CQA モードで有効にできます。
CS.BRM.AIBA - as の前に is を使用しない
CS.BRM.BEB - 空のブロック ステートメントを避ける
CS.BRM.CCB - if および else の本文を必ず括弧で囲む
CS.BRM.CPEB - 内容が空の checked、unchecked、fixed および unsafe 文を避ける
CS.BRM.ETK - 頭文字が大文字のメンバーにアクセスする場合、明示的に this キーワードを使用する
CS.BRM.ICB - 反復文の本文を必ず括弧で囲む
CS.BRM.IEB - 内容が空の初期化文を避ける
CS.BRM.KFATNC - ファイル名と型名の一貫性を保持する
CS.BRM.SWDEFLAST - switch 文の最後の case として default を置く
CS.BRM.UCB - using 文の本文を必ず括弧で囲む
CS.CDD.DUPU - using 文の重複を避ける
CS.EU.VZS - すべての列挙型に値が 0 のメンバーがあることを確認する
CS.INTER.ITT - 文字列リテラルを国際化するべきである
CS.NG.VAR.PNCFV - メソッドの変数および定数の適切な命名規則に従う
CS.PB.USC.CC - 条件内の到達できないコードを避ける
CS.PB.USC.UC - 到達できないコードを避ける
CS.PB.ANIL - 繰り返し不可能なループを避ける
CS.PB.AWC - 条件内で代入演算子を使用しない
CS.PB.BITBOOL - オペランドがブール型の場合はビット演算子を使用しない
CS.PB.CCA - コンストラクターの引数への紛らわしい代入を避ける
CS.PB.CEB - 内容が空の条件文を避ける
CS.PB.CNFA - as 演算子を使用したら null チェックを行う
CS.PB.DEFSWITCH - 各 switch 文には default: を用意する
CS.PB.EEB - 内容が空の try、catch、finally および using 文を避ける
CS.PB.FPLI - 浮動小数点型の変数をループ インデックスとして使用しない
CS.PB.IDNE - インクリメント文の結果を上書きしてはいけない
CS.PB.IEB - 内容が空の反復文を避ける
CS.PB.IVFLC - for ループの条件で初期化子の変数を使用する
CS.PB.IVFLI - for ループのイテレーター セクションで初期化子変数を使用する
CS.PB.MCO - '?:' 演算子が誤って使用されていないかどうかを確認する
CS.PB.NACC - アクセスできないクラスおよび構造体を避ける
CS.PB.NSIVFLB - for ループの初期化子変数を for ループの本文で変更しない
CS.PB.NSIVFLN - 複数のネストされた for ループ文で同じ変数をインクリメントまたはデクリメントしない
CS.PB.PUO - 単項演算子 + を使用してはならない
CS.PB.VTNV - 値型と null を比較してはならない
CS.PB.WIBS - ブロックのないステートメントを誤ってインデントしない
CS.SEC.RSFSS - SecureString から文字列を再作成しない
CS.SEC.SSFP - パスワードには String ではなく SecureString を使用する
CS.TRS.LCB - lock 文の本文を必ず括弧で囲む
CS.TRS.LEB - 内容が空の lock 文を避ける
IFD.IDDR - 破棄可能なリソースを使用する型では IDisposable を実装する