命名方法:
帕斯卡(pascal)命名法:名字中的每一个逻辑断点都用一个大写字母来标记;
骆驼式(Camel)命名法:与帕斯卡命名相似。只不过Camel命名法是首字母小写,而帕斯卡命名法是首字母大写,
匈牙利命名法:名字=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,
可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。
MyData 帕斯卡命名pascal
myData 骆驼命名法Camel, 它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼
iMyData 匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途.
在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则。在最近发布的.NET和它的编程语言中,微软更换了他的这一法则。如果你用过Delphi编程,你会看到新的法则与Delphi(Pascal)有些相似。
从我学习编程以来Visual Studio是6.0,之后有2003版和2005版,到现在有2008版了; .NET framwork类库也从以前的1.1、2.0、3.0到现在的3.5,我学C++之时用的是Visual Studio 6.0,那时老师还介绍使用匈牙利命名法,不过之后到.NET平台下微软不建议用匈牙利命名法了,这可以从微软根据其所推出产品的示例和.NET framwork类库参考看到,在C#中,以帕斯卡命名法和骆驼命名法居多。我个人习惯骆驼命名法,事实上在.NET framwork类库参考中使用的就是帕斯卡命名法和骆驼命名法。
以下就是 帕斯卡命名法和骆驼命名法的具体使用。
| |||
类型 | 命外规则 | 说明 | |
命名空间namespace | Pascal | 以.分隔,其中每一个限定词均为Pascal命名方式 如ExcelQuicker.Work | |
类 class | Pascal | 每一个逻辑断点首字母大写 如public class MyHome | |
接口 interface | IPascal | 每一个逻辑断点首字母大写,总是以I前缀开始,后接Pascal命名 如public interface IBankAccount | |
方法 method | Pascal | 每一个逻辑断点首字母大写 如private void SetMember(string) | |
枚举类型enum | Pascal | 每一个逻辑断点首字母大写 | |
委托 delegate | Pascal | 每一个逻辑断点首字母大写 | |
局部变量 方法的参数 | Camel | 首字母小写,之后Pascal命名 如string myName | |
具体应用的一般良好习惯 | |||
1、 | 成员变量前加前缀 _ | ||
2、 | 接口的名称加前缀I | ||
3、 | 自定义的属性以Attribute结尾,如: public class AuthorAttribute :Attribute { } | ||
4、 | 自定义的异常以Exception结尾,如: public class AppException: Exception { | ||
5、 | 方法的命名。一般将其命名为动宾短语,如: ShowDialog() CreateFile() | ||
6、 | 代码的缩进。要用Tab,而不要用space. | ||
7、 | 局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n)。 | ||
8、 | 所有的成员变量声明在类的顶端,用一个换行把它和方法分开。 | ||
9、 | 用有意义的名字命名namespace,如:产品名、公司名。 | ||
10、 | 生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string。 | ||
11、 | 始终使用”{ }”包含if下的语句,即使只有一条语句。 | ||
12、 | 把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion |