JavaとC#の命名規約まとめ (JavaプログラマーがC#でプログラムを書いて引っかかったところ その3)

よくごっちゃになってしまうので、JavaC#命名規約をざっとまとめてみました。

種類JavaC#(.NET)
クラスPascalPascal
インタフェースPascal
(例:List)
"I" + Pascal
(例:IList)
パッケージ / ネームスペースCamel
(例:java.net)
Pascal
(例:System.Net)
メソッドCamel
(例:toString())
Pascal
(例:ToString())
ローカル変数CamelCamel
メンバ変数Camel
(例:Calendar.isTime)
Pascal
(例:Calendar.IsReadOnly)
定数Snake
(例:Integer.MAX_VALUE
Pascal
(例:Int32.MaxValue)
列挙定数Snake
(例:State.RUNNABLE)
Pascal
(例:ThreadState.Running)

CamelCase
・最初の単語はすべて小文字
・それ以降の単語は頭だけ大文字、頭以外は小文字
・例:fooBar
PascalCase
・単語の頭は大文字、頭以外は小文字
・例: FooBar
SnakeCase
・すべての単語は大文字
・単語と単語の間にアンダースコアを挿入
・例:FOO_BAR


初めて Java を書いたときは、命名規約が C言語と大体同じだったのでそこまで混乱しなかったのですが、C#Java とも C言語とも違うので*1、慣れないと厄介ですね*2

でも、改めて見てみるとローカル変数以外は PascalCase となっているので難しくはなさそうです。


参考:
大文字の使用規則 - .NET Framework デザインガイドライン
名前に関するガイドライン - .NET Framework デザインガイドライン

*1:C#命名規約は Pascal から採用しているらしいです

*2:メソッド名を Java の癖でキャメルケースにしてしまいます…