C#の学習を始めたばかりです。 Java、C++、およびObjective-Cのバックグラウンドから来た私は、C#のPascalでそのメソッド名をケーシングするのはかなりユニークで、最初は慣れにくいと思います。この背後にある理由と哲学は何ですか?
C#のプロパティが原因だと思います。メソッド名をインスタンス変数とまったく同じにすることができるObjective-Cとは異なり、これはC#には当てはまりません。プロパティの目標の1つは(それをサポートするほとんどの言語と同様に)、プロパティを変数やメソッドとまったく区別できないようにすることです。したがって、C#では "int x"を使用でき、対応するプロパティはXになります。プロパティとメソッドを区別できないようにするために、私が推測するすべてのメソッド名も大文字で始める必要があります。 (これは、これまでにC#について知っていることに基づいた私の仮説にすぎません。私はまだ学習中です)。私はこの奇妙なガイドラインがどのようにして生まれたのかを知りたいと思っています(メソッド名が小文字で始まることが期待される他のほとんどの言語では見られないものです)
(編集:Pascal-casingとは、PascalCaseを意味します(基本的にはcamelCaseですが、大文字で始まります。メソッド名は通常、ほとんどの言語で小文字で始まります)。
それは好みの問題です。かつて誰かが名前にパスカルスタイルを使用することを決め、それが標準になりました。
パスカルの後継者であるデルファイの建築家だった Anders Hejlsberg だったと思います。ケースのスタイルはC#と同じです。
理由を尋ねるなら、ここに馬の口からまっすぐにあるものがあります:
パスカルケーシングとキャメルケーシングの歴史 MSDNブログのBrad Abramsによる記事
フレームワークの初期設計では、命名スタイルについて数百時間の議論がありました。これらの議論を促進するために、私たちはいくつかの条件を作り出しました。 Anders Heilsberg( Turbo Pascal の元の設計者)が設計チームの主要メンバーであることから、Pascalプログラミング言語で普及したケーシングスタイルにPascalケーシングという用語を選んだのは不思議ではありません...
Pascal Casing規則は、各Wordの最初の文字を大文字にします(長さが2文字を超える頭字語を含む)...
そして、これが設計ガイドラインです: クラスライブラリ開発者のための設計ガイドライン
これらのガイドラインは、クラスライブラリの設計者が異なるソリューション間のトレードオフを理解するのに役立つことを目的としています。優れたライブラリ設計では、これらの設計ガイドラインに違反する必要がある場合があります。そのようなケースはまれであるはずであり、あなたの決定のためのしっかりした正当化を提供することは重要です。このセクションでは、.NET Frameworkの型の命名と使用のガイドライン、および一般的なデザインパターンを実装するためのガイドラインを提供します...
哲学についてはわかりませんが、少なくともWin32 APIの日以来、MicrosoftプラットフォームではPascalケーシングが一般的であるようです。
その背後に特定の哲学があったとは思いません。ガイドラインが必要であり、それに影響を与える可能性のある多くの点がありました:
ワイルドな(しかし不合理ではない)推測-C#の設計は、Pascalの最初の発明者である Niklaus Wirth によって監督されました。接続を確認しますか?... :)
好奇心が強い#1:.NETとC#の発表(そう、私は先史時代です...)と、MicrosoftがC#にワースの名前を付けたことで自慢したことをはっきりと覚えています。しかし、どちらのウィキペディアのページ(C#とWirth)でもこれについては触れられていません。
おもしろい#2:PascalCase
と呼ばれていますが、言語自体ではなく、TurboPascal
コンパイラ(最終的にはBorland
になる)によって普及しました。
大文字と小文字の背後に「哲学」があることはわかりません。それは、ナイスでコンパクトであり、アンダースコアを使用しなくても複数の単語として簡単に表示できることです。
過去数十年にわたってケーシングの多くのバリエーションがありました。それらは非常に簡潔なもの(Cおよび標準Cライブラリを参照)から、各Wordを区切るアンダースコア付きの冗長なものまであります。 .NETライブラリの命名規則はまだかなり冗長ですが、大文字と小文字の区別があるため、中程度の基準に達していると思います。