- C#从入门到精通(第4版)
- 明日科技
- 1339字
- 2020-11-28 16:23:14
2.3 程序编写规范
视频讲解:光盘\TM\lx\2\08程序编写规范.mp4
本节将详细介绍代码的书写规则以及命名规范,使用代码书写规则和命名规范可以使程序代码更加规范化,对代码的理解与维护起到至关重要的作用。
2.3.1 代码书写规则
代码书写规则通常对应用程序的功能没有影响,但它们能改善对源代码的理解。养成良好的习惯对于软件的开发和维护都是很有益的,下面介绍一些代码书写规则。
尽量使用接口,然后使用类实现接口,以提高程序的灵活性。
尽量不要手工更改计算机生成的代码,若必须更改,一定要改成和计算机生成的代码风格一样。
关键的语句(包括声明关键的变量)必须要写注释。
建议局部变量在最接近使用它的地方声明。
不要使用goto系列语句,除非是用在跳出深层循环时。
避免写超过5个参数的方法。如果要传递多个参数,则使用结构。
避免书写代码量过大的try-catch模块。
避免在同一个文件中放置多个类。
生成和构建一个长的字符串时,一定要使用StringBuilder类型,而不用string类型。
switch语句一定要有default语句来处理意外情况。
对于if语句,应该使用一对“{ }”把语句块包含起来。
尽量不使用this关键字引用。
2.3.2 命名规范
命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范,程序也可以运行,但是使用命名规范可以很直观地了解代码所代表的含义。下面列出一些命名规范,供读者参考。
(1)用Pascal规则来命名方法和类型,Pascal的命名规则是第一个字母必须大写,并且后面的连接词的第一个字母均为大写。
【例2.7】定义一个公共类,并在此类中创建一个公共方法,代码如下。
public class User //创建一个公共类
{
public void GetInfo() //在公共类中创建一个公共方法
{
}
}
(2)用Camel规则来命名局部变量和方法的参数,Camel规则是指名称中第一个单词的第一个字母小写。
【例2.8】声明一个字符串变量和创建一个公共方法,代码如下。
string strUserName; //声明一个字符串变量strUserName public voidaddUser(string strUserId, byte[] byPassword); //创建一个具有两个参数的公共方法
(3)所有的成员变量前加前缀“_”。
【例2.9】在公共类DataBase中声明一个私有成员变量_connectionString,代码如下。
Public classDataBase //创建一个公共类
{
private string connectionString; //声明一个私有成员变量
}
(4)接口的名称加前缀“I”。
【例2.10】创建一个公共接口Iconvertible,代码如下。
public interface Iconvertible //创建一个公共接口Iconvertible
{
byte ToByte(); //声明一个byte类型的方法
}
(5)方法的命名,一般将其命名为动宾短语。
【例2.11】在公共类File中创建CreateFile方法和GetPath方法,代码如下。
public class File //创建一个公共类 { public void CreateFile(string filePath) //创建一个CreateFile方法 { } public void GetPath(string path) //创建一个GetPath方法 { } }
(6)所有的成员变量声明在类的顶端,用一个换行把它和方法分开。
【例2.12】在类的顶端声明两个私有变量_productId和_productName,代码如下。
public class Product //创建一个公共类 { private string_productId; //在类的顶端声明变量 private string_productName; //在类的顶端声明变量 //创建一个公共方法 public void AddProduct(string productId, string productName) { } }
说明 在类中定义私有变量和私有方法,变量和方法只能在该类中使用,不能对类进行实例化,对其进行调用。
(7)用有意义的名字命名空间namespace,如公司名、产品名。
【例2.13】利用公司名和产品名命名空间namespace,代码如下。
namespace Zivsoft //公司命名 { } namespace ERP //产品命名 { }
(8)使用某个控件的值时,尽量命名局部变量。
【例2.14】创建一个方法,在方法中声明一个字符串变量title,使其等于Label控件的Text值,代码如下。
public string GetTitle() //创建一个公共方法
{
stringtitle=lbl_Title.Text; //定义一个局部变量
return title; //使用这个局部变量
}
说明 在定义有返回值的方法时,必须在设置方法时,定义方法的类型,并在方法体结束后用return返回值。