C#コーディングルール

C#コーディングルール_#19_不要なルールを非表示にする方法

今回は,前回お伝えした通り,不要なルールを非表示にする方法を解説していきます。

コード分析規則セットを追加

ソリューションを右クリックし,「追加」「新しい項目」の順に選択します。

新しい項目の追加画面で,「コード分析規則セット」を選択します。

ファイル名は何でも構いませんが,アプリケーション名でMX99RuleSetでもいいですし,会社全体でコーディングルールを統一する場合は会社名やチーム名にするといいと思います。今回は「AndersonRuleSet.ruleset」としておきます。

この状態で「追加」ボタンを押下して,ファイルを追加します。

ルールセットの設定

ファイルを追加すると次のような画面が表示されます。表示されない場合は「AndersonRuleSet.ruleset」ファイルをダブルクリックすると表示されます。

この画面の「StyleCop.Analyzers」の左の三角マークをクリックして,階層を開きます。

右上の検索窓に,検索対象のコードを入れます。今回であれば,「SA1101」と入力します。

すると,検索で絞り込まれて,SA1101の行が表示されます。

表示されたSA1101の行の右側の「警告」となっている部分のプルダウンより,「非表示」を選択します。

この状態で警告一覧を確認すると,まだ消えていません。これは,まだ,「AndersonRuleSet.ruleset」を作成しただけで,このルール設定を適応するという設定になっていないためです。

ルールセットの適応

WinFormプロジェクトのPropertiesをダブルクリックします。

表示されたProperties画面の「コード分析」を選択します。

現状,規則セットの部分が,「Microsoftマネージド推奨規則」になっていると思いますが,ここを変更します。

プルダウンより「参照」を選択します。

先ほど作成した,ソリューション直下の「AndersonRuleSet.ruleset」を選択します。

規則設定のパスが正しいことを確認してください。

警告一覧の確認

これで,SA1101が警告一覧から非表示になっていることが確認できると思います。このような感じで不要なルールは「非表示」にすることができます。

ルールの確認

改めてStyleCop.Analyzersの階層を見ると,「非表示」「なし」「警告」という感じになっていますが,「非表示」とでるのは,今設定した「SA1101」のみです。なので,自分で警告から非表示にしたものは,ここで確認することができますし,後から復活させる場合は「非表示」の部分を「警告」に変えればよいという事になります。チーム全体で使うルールなので,新人が勝手に非表示することも考えられます。時々非表示のルールを確認し,必要なルールが非表示になっていないかを確認するといいでしょう。

チーム全体が同じルールセットを使うことで,同じルールでコーディングすることができるので,チームで話あって,1つのルールセットを作っていきましょう。

C#コーディングルール

C#を正しい3層構造で造れてますか?

非売品コースを受け取る

無料動画コース「C#のアーキテクチャー」(80分)をプレゼントしています

#01_はじめに
#02_名前の付け方
#03_名前付けのガイドライン
#04_パスカルケースとキャメルケース
#05_パスカルとキャメルの内訳
#06_パスカルとキャメルの実演
#07_2文字の略語は大文字にする
#08_名前空間のガイドライン
#09_ローカルルールについて
#10_private変数にアンダーバーを付ける
#11_コントロールの名付け
#12_クラス名とファイル名の名づけ
#13_StyleCopAnalyzersについて
#14_StyleCopAnalyzersのインストール
#15_ネームスペースの調整
#16_SA0001_プロパティのビルドのXMLでファイルを指定しておくと消える
#17_CS1591_XMLコメントなし
#18_SA1101_thisが付いていない
#19_不要なルールを非表示にする方法
#20_SA1200_usingの場所
#21_SA1400_アクセス修飾子が明示的に定義されていない
#22_その他不要なルールを非表示
#23_コンストラクタとデストラクタを作成
#24_Private変数とパラメータ変数の命名
#25_中括弧の省略禁止と改行
#26_コメントはスラッシュ4つ
#27_プロパティのXMLコメント
#28_コンストラクタやプロパティの書く順番
#29_アクセスレベルを加味した書く順番
#30_インタフェースのIとファイル名の不一致
#31_最後に