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#コーディングルール