C#コーディングルール

C#コーディングルール_#24_Private変数とパラメータ変数の命名

今回はPrivate変数とパラメータ変数の名前のルールに関して解説していきます。

Private変数

ProductIdというように,private変数の頭文字を大文字にするとSA1306の警告が出ます。

SA1306

この警告をWEBサイトで確認すると,次のように記載されています。

C#のフィールドは小文字で始めなければなりません。

productIdというように,小文字始まりの変数名にすると,警告は消えます。

Private変数をアンダーバーで始める

Private変数をアンダーバーで始めるというローカルルールがあり,それを採用しているチームも多いと思います。私もこのローカルルールを採用しています。ただ,private変数をアンダーバーで始めると警告が表示されます。試しに,変数名を_productIdとしてみましょう。

このようにアンダーバーで始まる変数を宣言すると,つぎのような警告が表示されます。

アンダーバー始まりの警告

SA1309の警告です。これはフィールドがアンダーバーで始まっていることを警告しています。この警告があると,ローカルルールがすべて警告されてしまうので,アンダーバー始まりのローカルルールを適応するのであれば,このルールは非表示にしておく必要があります。

これで,SA1309が非表示となりました。

パラメータ変数の命名

Private変数と同じように,パラメータ変数も,キャメル(小文字始まり)がルールとなっています。次のように,パラメータ変数を大文字始まりにすると警告が表示されます。

GetDataというメソッドを作成し,XMLコメントを記載しています。スラッシュを3つ打ち込むと自動でXMLコメントが生成され,引数と戻り値のエリアも作成されるので,そこに,パラメータの意味と戻り値の意味を記載しておく必要があります。それらを記述しても,引数が「ProductId」という大文字始まりの変数名にしているため,次のような警告が表示されます。

SA1313

このようにパラメータを小文字始まりにするようにとの警告が出ます。

このようにパラメータの頭文字をproductIdというように小文字始まりにします。自動で生成されたXMLコメントのProductIdの部分も小文字始まりにしないと,パラメータとXMLコメントがあっていないという別の警告が表示されるので,そちらも小文字始まりにします。

これで警告が消えます。以上が小文字始まりのルールとなります。

C#コーディングルール

C#プログラマーのための正しい3層構造が分かる「C#アーキテクチャー解説動画」をここで公開しています。よかったら見てみてください。

#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_最後に

参考図書

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

Code Complete 第2版 完全なプログラミングを目指して

.NETのクラスライブラリ設計 改訂新版 開発チーム直伝の設計原則、コーディング標準、パターン

チーム開発の教科書 C#によるモダンな開発を実 践しよう!

達人プログラマー ―熟達に向けたあなたの旅