为什么C#使用不同的命名约定?

mar*_*cgg 4 c# uml conventions naming-conventions

我最近开始使用C#,我注意到约定似乎是变量以大写字母和方法开头.

这是唯一可以做到这一点的语言吗?为什么?例如:

Page Page = new Page();
Page.Action(); 
Run Code Online (Sandbox Code Playgroud)

在其他语言中,你会看到:

Page page = new Page();
page.action();
Run Code Online (Sandbox Code Playgroud)

还有其他一些令人困惑的例子,因为我已经使用了UML,Ruby,C++和Java.

我的问题是,当其他语言没有时,为什么C#会这样做呢?

编辑

其他Stack Overflow用户注意到C#不遵循这个约定,这只是我的错误.

Mar*_*ell 22

实际上,没有:C#中的约定是针对camelCased变量(和字段)名称,以及PascalCase方法:

Page page = new Page();
page.Action();
Run Code Online (Sandbox Code Playgroud)


Jar*_*Par 10

不,这是相当非标准的C#代码.2.6节中的.Net框架设计指南建议使用驼峰套管作为局部变量名.


Mic*_*ows 7

公共成员使用PascalCase,私人成员使用camelCase.

我认为这使得更清楚哪些方法支持类与哪些方法定义类.

public class Foo
{
    private Bar bar;
    public Bar Bar { get; set; }

    public void DoFoo()
    {
        makeFoo();
    }

    private void makeFoo()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 根据Microsoft命名指南,makeFoo()应该命名为MakeFoo().根据范围,方法,属性和事件的外壳没有区别.http://msdn.microsoft.com/en-us/library/x2dbyw72(VS.71).aspx (3认同)