コーディング規約についてまとめる作業の中で、いわゆる「Lower Camel Case」をどうするかを考えることになった。というのも、
によると、「名前の各単語は大文字で開始します」と書かれているから。特にそこにスコープなどは記載されておらず、これだけ読むと全部いわゆる「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を適用)。ということか。
んー、んでもって「インスタンスフィールド」を明確に説明出来ない自分ガイル。