misc.log

日常茶飯事とお仕事と

StyleCopでSA1600を変更しPrivateフィールドへのコメントを不要にする

Visual StudioC#などのコーディング規約をチェックしてくれるStyleCopを利用しているのですが、規約No.「SA1600」、「Elements must be documented.」、ソースの要素にはすべてXMLコメントをつける必要があるという規約をONにすると、プライベート宣言したフィールド*1についてもコメントが必須になってしまいます。フィールド自体を乱用するのもよくないのですが、実際、ことごとくフィールド宣言されているようなひどいソースもあることからこの規約をそのままONにするとちょっとコーディングが回りません。

なんとかプライベートなフィールドは対象から外せないか調べてみました。検索キーワード「StyleCop Sa1600 private fields」で検索したところ、下記のstackoverflowのページがヒット。

stackoverflow.com

StyleCopの設定を開き、Rulesタブにある「Documentation Rules」をマウスで選択すると、右側の「Detailed settings」に

  • Ignore privates
  • Ignore internals
  • Include fields

という項目があります。上2つはチェックがOFF、下の「Include fields(フィールドを対象として含める)」がONになっているので、この項目をオフにすると……うまくいきました。まさかここで設定できるとは……。

なお、StyleCop Analyzerの場合はおそらく少し違うと思うので注意してください。

Instant StyleCop Code Analysis How-to (English Edition)

Instant StyleCop Code Analysis How-to (English Edition)

C#ルールブック ?読みやすく効率的なコードの原則

C#ルールブック ?読みやすく効率的なコードの原則

*1:フィールド: クラスの直下で宣言する変数。privateならクラス内でどこからでも参照可能。