個人的なコーディングスタイル

C#
このエントリーをはてなブックマークに追加

新年あけましておめでとうございます。時が過ぎるのは早くてもう2月ですね

すいません、深刻なネタ不足で「週1を目標にC#記事を書く」といいつつ1カ月ちょっと放置してました🙇🙇🙇🙇
2月からは週1で書けるよう若干ネタを貯めてるのでたぶん復帰できます。まぁ小ネタしかないけど。

というわけで、今日のC#記事は、今まで説明もなしにコード提示などを行ってきたので個人的なコーディングスタイルについてです。

基本

基本的にはC#の標準API/MSのガイドラインのような感じです。

個人差があるところを挙げると以下の要素があります。

  • privateメンバーはlowerCamelCase
  • 型推論は控えめ
  • 修飾子はできるだけ省略しない
  • インデントはスペース4文字

privateメンバーはlowerCamelCase

たまにprivateメソッドをUpperCamelCaseで書く人を見かける(たまにではなくほとんどの場合でだけども)のですが、自分はprivateメソッドもlowerCamelCaseです。
原因としては自分の経歴が第1言語がPHP、第2Javaだったということが多少はあるかもしれませんが、ただ単純にprivateであることをはっきりと表現したいからです。

もちろんprivate protectedprotected internalなどはUpperCamelCaseです。

いちおうガイドライン的にもセーフでして(というか、.NET的にはprivateなんだから勝手にしろという感じ)、自分が書くコードで自分だけの影響範囲なのでまぁprivatelowerCamelCaseにするっていうのは今後も変えるつもりはないです。

型推論は控えめ

これについては型情報を最大限生かすというコーディングスタイルです。 一部の人ではなんでもかんでも型推論をして、変数名に型情報を入れる人がいるようですが、自分はそうではないです。

全部の型宣言で型推論をしないというのではなく、右辺で型が明示されてるときやジェネリクスの型パラメーターで型が長くなるときは型推論します。

例に挙げるとこんな感じ:

var program = new Program();
var list = new List<List<string>>();
// これ以外はほとんどの場合で型を明示する

また、基本データ型に関してはどんなときでも型を明示します。 理由は単純で基本データ型の変数名に型名情報を入れるのがダサいからなどなど。

修飾子はできるだけ省略しない

もともとはC#のデフォルト修飾子(クラスだとinternalだったり)を忘れてそのままプログラムを実行してしまうから、忘れないように付けていくという感じで始めましたが、今となってはVisual Studioの修飾子のコードハイライトの青色が好きだからという感じです。ええ本当に。

インデントはスペース4文字

Githubさえなければタブでもよかった、Githubでタブインデントがださいからスペース派になった、ただそれだけ。

今後は?

実はC#に対するコーディングスタイルは年単位で微妙に変わってきてます。

最近ではreadonlyを積極的に付けるようになってきてますし、ちょっと前までは{, }での改行はしない派でしたですし。

ちょっとずつ標準のスタイルに寄っていってますが、現状のところでこれ以上変わることはないと思います。