用于标识符的规则
标示符是给变量、用户定义的类型(例如类和结构)和这些类型的成员制定的名称。标示符区分大小写。确定在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) 名称和关键字
名称不应与任何关键字冲突,这是非常重要的。