为什么不C#使用不同的命名约定?[关闭]
-
03-07-2019 - |
题
我开始工作C#最近我注意到,《公约》似乎是,该变量开始一个资本函随着方法。
这是唯一的语言,做这个,为什么?例如:
Page Page = new Page();
Page.Action();
在其他语言中,你会看到替代:
Page page = new Page();
page.action();
还有其它的例子,这是令人困惑,因为我已经工作了很多与UML、红宝石、C++、Java。
我的问题是,为什么不C#这样做的时候,其他语言不?
编辑
其他堆溢出用户注意到C#不遵守本公约,这只是一个错误我的一部分。
解决方案
实际上,不是:C#中的约定是针对camelCased变量(和字段)名称以及PascalCase方法:
Page page = new Page();
page.Action();
其他提示
不,这是相当标准非C#代码。。净框架的设计准则在第2.6节建议使用骆驼的外壳的地方变量名称。
公共成员使用 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指南。
在单一环境中使用约定也是有意义的。 .NET本身就是一个综合的环境,而另一个是微软公司,那么采用其他人就没有意义了。
另外,我强烈怀疑UML有一个命名约定,或者即使是具有命名约定的UML的想法也是有道理的。 UML为您的软件建模,并应遵循该软件的惯例。
通过使用以下两个工具,您可以了解应采用哪些约定。
FxCop: http://msdn.microsoft。 COM / EN-US /库/ bb429476(VS.80)的.aspx
Public = PascalCase,我只倾向于将camelCase用于私有字段和参数参数。
阅读这篇编码标准虽然可以在Google上轻松搜索,也不错开始的地方。