C#编程规则
变量、类、方法等名称叫做标识符。
一、标识符的规则
·必须以字母或下划线开头,可以包含数字。
·不能把保留字用作标识符。(如果需要把保留字作为标识符,则应在它前面加上@符号,如:@abstract)
·标识符可以包含Unicode字符,用法:\uxxxx。(xxxx是四位16进制代码)
举例:Name、uberflu、_Identifier、\u005fIdentifiter。(005f是下划线的Unicode代码)
PS:下划线不符合微软的命名规则。
二、用法约定
变量名不使用前缀,因为智能编译器和IntelliSense可以区分它们的数据类型。
详细规则参考MSDN技术文档。
⒈命名约定
名称描述变量的功能,而不是数据类型。如:Height是好名字,IntegerValue不好。但EmployeeListBox即描述了功能又描述了数据类型。
⑴名称的大小写
不要使用下划线。如:employee_salary。
常量的命名使用Pascal形式,全部字母大写很难阅读。
EmployeeSalary、ConfirmationDialog、PlainTextEncoding。
·如果要调用VB.NET的程序集,必须使其不能在程序集外部访问,因为VB.NET不区分大小写。
⑵名称的风格
如果有:ShowConfirmationDialog(),就应有ShowWarningDialog(),而不是ShowDialogWarning()或WarningDialogShow()。
⑶命名空间的名称
命名空间应用<公司名>.<技术名>来避免用名冲突。
⑷名称和保留字
不要使用VB.NET的保留字。
⒉属性和方法的使用
一个数据不知道用属性还是方法来表示。如果该数据的外观和操作都像一个变量,就应使用属性来表示它。
·客户机应能读取它的值,最好不要使用只写属性,应使用SetPassword()方法,而不是Password只写属性。
·读取该值不应花太长时间。实际上,如果它是一个属性,通常读取时间较短。
·读取该值不应有任何边界效应。例如:设置属性的值,不应有与该值属性直接相关的边界效应。设置对话框的宽度会改变该对话框在屏幕上的外观,这是可以的,因为它与属性是相关的。
·应可以用任何顺序设置属性。最好不要把属性设置为抛出一个异常。因为还没有设置另一个相关的属性。例如:如果为了使用访问数据库的类,需要设置ConnectionString、UserName和Password,应确保已经执行了该类,这样用户才可以按照任何顺序设置它们。
·顺序读取属性也有相同的效果。如果属性的值可能会出现预料不到的变化,就应把它编写成一个方法。例如:监视汽车的速度就应该使用GetSpeed(),另,应把Weight和EngineSize编写为属性。因为它们不会改变。
⒊字段的用法
字段一般是私有的,但有时候可以为公有的,因为以后可以方便扩展。
编码风格应与基类的风格相同。
一、标识符的规则
·必须以字母或下划线开头,可以包含数字。
·不能把保留字用作标识符。(如果需要把保留字作为标识符,则应在它前面加上@符号,如:@abstract)
·标识符可以包含Unicode字符,用法:\uxxxx。(xxxx是四位16进制代码)
举例:Name、uberflu、_Identifier、\u005fIdentifiter。(005f是下划线的Unicode代码)
PS:下划线不符合微软的命名规则。
二、用法约定
变量名不使用前缀,因为智能编译器和IntelliSense可以区分它们的数据类型。
详细规则参考MSDN技术文档。
⒈命名约定
名称描述变量的功能,而不是数据类型。如:Height是好名字,IntegerValue不好。但EmployeeListBox即描述了功能又描述了数据类型。
⑴名称的大小写
不要使用下划线。如:employee_salary。
常量的命名使用Pascal形式,全部字母大写很难阅读。
const int MaximumLength;
·私有成员字段、参数使用Camel形式。private int subscriberID;
public void RecordSale(string salesmanName, int quantity);
·公共的或受保护的成员使用Pascal形式。public void RecordSale(string salesmanName, int quantity);
EmployeeSalary、ConfirmationDialog、PlainTextEncoding。
·如果要调用VB.NET的程序集,必须使其不能在程序集外部访问,因为VB.NET不区分大小写。
⑵名称的风格
如果有:ShowConfirmationDialog(),就应有ShowWarningDialog(),而不是ShowDialogWarning()或WarningDialogShow()。
⑶命名空间的名称
命名空间应用<公司名>.<技术名>来避免用名冲突。
⑷名称和保留字
不要使用VB.NET的保留字。
⒉属性和方法的使用
一个数据不知道用属性还是方法来表示。如果该数据的外观和操作都像一个变量,就应使用属性来表示它。
·客户机应能读取它的值,最好不要使用只写属性,应使用SetPassword()方法,而不是Password只写属性。
·读取该值不应花太长时间。实际上,如果它是一个属性,通常读取时间较短。
·读取该值不应有任何边界效应。例如:设置属性的值,不应有与该值属性直接相关的边界效应。设置对话框的宽度会改变该对话框在屏幕上的外观,这是可以的,因为它与属性是相关的。
·应可以用任何顺序设置属性。最好不要把属性设置为抛出一个异常。因为还没有设置另一个相关的属性。例如:如果为了使用访问数据库的类,需要设置ConnectionString、UserName和Password,应确保已经执行了该类,这样用户才可以按照任何顺序设置它们。
·顺序读取属性也有相同的效果。如果属性的值可能会出现预料不到的变化,就应把它编写成一个方法。例如:监视汽车的速度就应该使用GetSpeed(),另,应把Weight和EngineSize编写为属性。因为它们不会改变。
⒊字段的用法
字段一般是私有的,但有时候可以为公有的,因为以后可以方便扩展。
编码风格应与基类的风格相同。