C#で異なる命名規則が使用されるのはなぜですか? [閉まっている]
-
03-07-2019 - |
質問
最近C#での作業を開始しましたが、慣習では変数がメソッドとともに大文字で始まるようになっていることに気付きました。
これがこれを行う唯一の言語であり、なぜですか? 例えば:
Page Page = new Page();
Page.Action();
他の言語では、代わりに表示されます:
Page page = new Page();
page.action();
他にもUML、Ruby、C ++、およびJavaで多くの作業をしてきたため、混乱を招く例があります。
私の質問は、他の言語ではできないのになぜC#でこのようにするのですか?
編集
他のStack Overflowユーザーは、C#がこの規則に従っていないことに気付いています。これは私の側の間違いでした。
解決
まあ、いや:いいえ、C#の規約はcamelCased変数(およびフィールド)名、およびPascalCaseメソッドに対するものです:
Page page = new Page();
page.Action();
他のヒント
いいえ、これはかなり非標準のC#コードです。セクション2.6の.Net Framework設計ガイドラインでは、ローカル変数名にラクダケーシングを使用することを推奨しています。
パブリックメンバーは PascalCase
を使用し、プライベートメンバーは camelCase
を使用します。
これにより、どのメソッドがクラスをサポートするか、どのメソッドがクラスを定義するかが明確になると思います。
public class Foo
{
private Bar bar;
public Bar Bar { get; set; }
public void DoFoo()
{
makeFoo();
}
private void makeFoo()
{
}
}
記述または使用したすべてのC#規則のセットでは、変数のキャメルケースを指定します。
Page page = new Page();
MyClass myClass = new MyClass();
Pascalのケースがどこで使用されているかはわかりませんが、C#に固有のものや標準ではありません。
通常、C#の変数は大文字で始まりません(ただし、開発者自身の実装次第です)。おそらく混乱しているのは、プロパティ。 C#のプロパティは、変数のように構文的に使用されます(関数のように実行されるだけでなく、取得または割り当てが可能)が、両方の操作のビジネスロジックをカプセル化できます。
ただし、質問のより広範な部分に答えるために、プロパティとメソッド/関数の両方は通常、 Microsoftガイドライン。
PascalCaseは、.NETよりもずっと前のMicrosoftの慣習でした。 (Win32 APIなど)
規約は、単一の環境内で使用するのも理にかなっています。 .NETはそれ自体が包括的な環境であり、Microsoftの会社は別の環境であるため、他の誰かの環境を採用する意味はまったくありません。
また、UMLに命名規則があること、またはUMLに命名規則があるという考えでさえ理にかなっていることを強く疑います。 UMLはソフトウェアをモデル化し、そのソフトウェアの規則に従う必要があります。
次の2つのツールを使用すると、どの規則を採用するかについて多くのことがわかります。
FxCop: http://msdn.microsoft。 com / en-us / library / bb429476(VS.80).aspx
Public = PascalCase、プライベートフィールドとパラメーター引数にのみcamelCaseを使用する傾向があります。
これを読むコーディング標準はグーグルで簡単に検索でき、悪くない開始する場所。