用于标识符的规则
标示符是给变量、用户定义的类型(例如类和结构)和这些类型的成员制定的名称。标示符区分大小写。确定在C#使用标示符有两个规则:
● 它们必须以一个字母或下划线开头,但可以包含数字字符;
● 不能把C#关键字用作标识符。
C#包含保留关键字
abstract | do | in | Protected | true |
as | double | int | Public | try |
base | else | interface | Readonly | typeof |
bool | enum | internal | Ref | uint |
break | event | is | Return | ulong |
byte | explicit | lock | Sbyte | unchecked |
case | extern | long | Sealed | unsafe |
catch | false | namespace | Short | ushort |
char | finally | New | Sizeof | using |
checked | fixed | Null | Stackalloc | virtual |
class | float | Object | Static | volatile |
const | for | Operator | String | void |
continue | foreach | Out | struct | while |
decimal | goto | Override | switch |
|
default | if | Params | this |
|
delegate | implicit | Private | throw |
|
如果需要把某一保留字用作标识符(例如,访问一个用另一种语言编写的类),可以在标识符的前面加上前缀@符号,指示编译器其后的内容是一个标识符,而不是C#关键字(所以abstract不是有效的标识符,而@abstract是)。
用法约定
变量名用带有前缀字母来表示某个数据类型,这种约定称为Hungarian表示法。
1、命名约定
使程序易于理解的一个重要方面是给对象选择命名的方式,包括变量名、方法名、类名、枚举
名和命名空间的名称。
在.NET Framework中,一般规则也是变量名要反映变量实例的功能,而不是反映数据类型。例如,Height就是一个比较好的变量名,而IntegerValue就不太好。但是,这种规则是一种理想状态,很难达到。在处理控件时,大多数情况下使用ConfirmationDialog 和 ChooseEmployeeListBox等变量名比较好,这些变量名说明了变量的数据类型。
名称的约定包括以下几个方面
(1) 名称的大小写
在许多情况下,名称都应使用Pascal大小写命名形式。 Pascal 大小写形式是指名称中单词的第一个字母大写,如EmployeeSalary、ConfirmationDialog、PlainTextEncoding。注意,命名空间、类、以及基类中的成员等的名称都应遵循该规则,最好不要使用带有下划线字符的单词,即名称不应是employee_salary。其他语言中常量的名称常常全部都是大写,但在C#中最好不要这样,因为这种名称很难阅读,而应全部使用Pascal 大小写形式的命名约定
我们还推荐使用另一种大小写模式:camel大小写形式。这种形式类似于Pascal 大小写形式,但名称中第一个单词的第一个字母不是大写:employeeSalary、confirmationDialog、plainTextEncoding。有三种情况可以使用camel大小写形式。
● 类型中所有私有成员字段的名称都应是camel大小写形式:
public int subscriberId;
但要注意成员字段名常常用一个下划线开头:
public int _subscriberId;
传递给方法的所有参数都应是camel大小写形式:
public void RecordSale(string salesmanName, int quantity);
camel大小写形式也可以用于区分同名的两个对象-- 比较常见的情况是属性封装一个字段:
private string employeeName;
public string EmployeeName
{
get
{
return employeeName;
}
}
(2) 名称的风格
名称的风格应保持一致。例如,如果类中的一个方法叫ShowConfirmationDialog(),另一个方法就不能叫ShowDialogWarning()或WarningDialogShow(),而应是ShowWarningDialog()。
(3) 命名空间的名称
命名空间的名称非常重要,一定要仔细设计,以避免一个命名空间中对象的名称与其他对象同名。记住,命名空间的名称是.NET区分共享程序集中对象名的唯一方式。如果软件包的命名空间使用的名称与另一个软件包相同,而这两个软件包都安装在一台计算机上,就会出问题。因此,最好用自己的公司名创建顶级的命名空间,再嵌套技术范围较窄、用户所在小组或部门、或类所在软件包的命名空间。Microsoft建议使用如下的命名空间:<CompanyName>. <TechnologyName>,
(4) 名称和关键字
名称不应与任何关键字冲突,这是非常重要的。