C#コーディングルール

C#コーディングルール_#29_アクセスレベルを加味した書く順番

前回はプロパティとかコンストラクタとかどちらを上に書くべきか?といった内容をご説明しました。今回もコード内順序のお話ですが,アクセスレベルを加味したコード内順序のお話になります。アクセスレベルとはpublicなどのアクセス修飾子の事です。

アクセスレベルごとのコード内順序

アクセスレベルごとに,コード内の順序があり,それに違反すると警告が表示されます。基本的には,アクセスレベルの広い順番で書くという事になります。アクセスレベルはpublicが一番広く,privateが一番狭いですから,例えばpublicメソッドよりもprivateメソッドを上に記述すると警告が出ます。

SA1202

アクセスレベルの順序

アクセスレベルの順序は次のように定められています。

  • public
  • internal
  • protected internal
  • protected
  • private

アクセスレベルは前述のコンストラクタやプロパティの順序内での順序となるので,プロパティはプロパティの中でアクセスレベル順になるようにします。ですのでpublicのプロパティ,internalのプロパティ,publicのメソッドというような順序で書きます。

この例のように,internalでもプロパティであれば,publicのメソッドより上に書く必要があります。それぞれの項目(プロパティなど)ごとに並べて,その中で,アクセスレベルの広い順と覚えてください。

同じアクセスレベルならStaticを上に書く

同じアクセスレベルでもstaticが優先されます。Internalとinternal staticであれば,internal staticを上に書く必要があります。

このように同じアクセスレベルでstaticを下に書くと警告が表示されます。

SA1204

同じアクセスレベルではstaticが優先となります。次のように修正することで警告が消えます。

ProductEntity全体

最後にProductEntity全体のコードをご参考に記載しておきます。

C#コーディングルール

■Udemyの無料コース「C#を勉強する順番(49分)」は今すぐここからご覧いただけます

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

C#でコードスニペットを使う方法