C#コーディングルール

C#コーディングルール_#28_コンストラクタやプロパティの書く順番

今回は,クラス内に書く,コンストラクタやプロパティなどの,書く順番に関するルールを解説していきます。この警告のおかげで,決められた順序で書かないと警告になるので,チーム全体が同じ順番で記述することができます。

SA1201

例えば次のように,メソッドより後に,プロパティを記述してみてください。

すると,SA1201という警告が表示されます。

WEBサイトで警告内容を確認すると次のような内容になっています。

コード内の順序が間違っていることを警告されています。

コード内の順序1

SA1201の警告内容の中に,コード内の順序が解説されています。

まず初めに,次のような順序が記されています。

しかし,この順序は1ファイルに1クラスで記述するということにしておけば,関係ないので,あまり気にする必要がありません。要するにアプリケーション全体で使用するクラスや列挙体,構造体などは,1つにつき1ファイルにしておけば,順序などは最初から必要ありません。クラスの中だけで使用する列挙体などは,この限りではないので,次に解説する順序を確認にしてください。

コード内の順序2

これが,クラスの中に記述する順序です。色々ありますが,代表的なもので言うと次のあたりになると思います。

  • フィールド
  • コンストラクタ
  • デストラクタ
  • デリゲート
  • イベント
  • 列挙体
  • プロパティ
  • メソッド

まずクラスを書いたら,そのクラスで保持するメモリ空間として,フィールドを宣言します。その後にコンストラクタとデストラクタを書きます。その後にイベント関係であるデリゲート,イベントを書きます。そして列挙体。この辺りまでで,このクラスがどのような値を保持して,どのようなイベントを通知するのかが理解できます。そしてプロパティをみれば,どのような値が公開されているのか,外部から設定できるのかが把握できます。最後にメソッドです。この順序に違反すると今回の警告が表示されます。この警告は大事なので,必ず対応しましょう。

コード内順序の例

コード内順序に従うと,次のような感じになります。

順序をわざと入れ替えると,警告がでるので,色々試してみてください。この順序はC#でコーディングしている以上,永遠に付きまとうので,順序違いをみたら,気持ちが悪くなるくらい,体にしみこませてください。

C#コーディングルール

■4700人以上が受講している動画コースはこちらからご確認ください

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

■4700人以上が受講している動画コースはこちらからご確認ください