misc.log

日常茶飯事とお仕事と

コーディング規約:キャメルケース(Camel Case)

コーディング規約についてまとめる作業の中で、いわゆる「Lower Camel Case」をどうするかを考えることになった。というのも、

Visual Basicの名前付け規則
http://msdn.microsoft.com/ja-jp/library/0b283bse(VS.80).aspx

によると、「名前の各単語は大文字で開始します」と書かれているから。特にそこにスコープなどは記載されておらず、これだけ読むと全部いわゆる「Upper Camel Case」なのかな、と思ってしまう。一方で、Wikipedia(英語版)などによると

CamelCase(Wikipedia)
http://en.wikipedia.org/wiki/CamelCase

以下のように書いてある。

Microsoft .NET recommends lowerCamelCase for parameters and non-public fields and UpperCamelCase (aka "Pascal Style") for other types of identifiers.

よく見ると脚注が。脚注は下記のURLを指している。

.NET Framework 1.1/Reference Design Guidelines for Class Library/Naming Guidelines/Capitalization Styles
http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx

.NET Framework1.1に関するキャピタライゼーションスタイルに関する記述。ここを見ると確かにUpper Camel Case(ここではPascalと読んでますね)とLower Camel Case(ここではCamelと呼んでます)、さらには全部大文字の「Upper」が使い分けられている。では、この.NET Framework 2.0版を探してみるとするか。


調べてみました。以下の場所にありますね。

.NET Development/PreviousVersions/.NET Framework2.0/General Reference/Design Guidelines for Developing Class Libraries/Guidelines for Names
http://msdn.microsoft.com/en-us/library/ms229043(VS.80).aspx
Pascal CasingはPublicなメンバー、タイプ、名前空間名に利用します。
ただし、インスタンスフィールドには適用しません。
詳細はMember Design Guidelinesに。
Publicなインスタンスフィールドは利用すべきではありません。

とある。上記URLの表中にCamel Caseが登場するのは「パラメータ(引数)」だけだけど、Publicじゃないインスタンスフィールドにも適用する(というか、Pascalインスタンスフィールドには適用しない→Camelを適用)。ということか。

んー、んでもって「インスタンスフィールド」を明確に説明出来ない自分ガイル。