在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则。例如:
变量 | 命名 |
CString | SzString |
char | CmyChar |
char* | PmyChar |
Long | LMyVariable |
LPCSTR | LpStr |
Int | NMyNumber |
在最近发布的.NET和它的编程语言中,微软更换了他的这一法则。如果你用过Delphi编程,你会看到新的法则与Delphi(Pascal)有些相似。
为避免代码冲突(这样做也会让你的代码更为通用),就要使用命名法则,这是一个很好的编程习惯。好啦,这里介绍一些常用的法则。
◆命名变量、方法、以及属性
变量、方法和属性的名称的第一个字母应该大写,并且名称应该能表达出它们的用途(或者说是意义)。
变量 | .NET 命名 | 匈牙利命名 | 描述 |
Cstring | EmployeeName | szName | Name of an employee. |
Int | AttendanceCounter | nCounter | A counter of type long. |
Long | NumberOfBytes | lBytes | A long type variable stores bytes. |
有时我们习惯于在定义中使用下划线 "_",例如: Add_Data(int a, int b). 按照新的命名法则,这不是一个好的编程习惯,虽然它并没有错。你应该将定义 Add_Data 改为 AddData。 这不是微软的标准,你也不是必须按照这些法则。但是,在一些地方你会明白下边这些法则的合理性。
就我个人而言,我更喜欢匈牙利命名法。当然,变量也使用同样的法则。如果你记得匈牙利命名法的话,一个布尔型的变量定义以"b"打头,比如:
BOOL bFlag = TRUE;
新的法则不推荐使用Flag 和 "b":
bool IsFileFound = true;
你可以浏览一下MSDN,那里边有更多有关新的法则的说明。
◆命名组件以及集合(Assemblies)
为避免代码冲突, 按照命名法则给你的库(在 .NET 中称为assembly)命名是一个良好的编程习惯。假定你是MindCracker 公司的,你在开发一个用于扩充C# database 类的库, 把它的名字命名为MindCracker.DatabaseAssembly.ADOSet 要比MyAssembly.Database.ADOSet好的多。
再假定你的库有一个方法,它是从表中读取数据,并返回一个数据集。你如果取名为 DataSet return_data()的话,改为DataSet ReturnData()好啦.
你还应该在命名中遵循一个统一的单词顺序。例如,你有俩个表,分别为Employee 和 Manager ,并且你还为它们分别定义了一个向表里边插入一条记录的方法, 那么方法名AppendEmployee 和 AppendManager 要比AppendEmployee 和 ManagerAppend要好。
◆循环
循环或者是其它块儿结构应该对齐左右大括号,就像下边这样:
for (i = 0; i < 100; i++)
{
...
}
或者
for (i = 0; i < 100; i++){
...
}
我更喜欢的二种方法,因为很容易清楚一个块儿结构和嵌套块儿结构。