C#项目开发规范

    技术2022-05-20  40

    表意清晰的命名规范是程序规划的核心,如果整个系统所有的命名都与其功能相适合,并可以让人“望文知意”,例如“Age”、“SetAge ()”,可大大提高系统的可维护性和健壮性,并可使系统关系清晰。反之,如果命名不能反应其含义,例如“v001”、“f002 ()”,那么将适得其反。

    说明

    常用的命名风格如下。

    (1)Pascal风格:包含一到多个单词,每一个单词第一个字母大写,其他字母小写,其余字母均小写。例如:CollegeStudent、HelloWorld等。

    (2)Camel风格:包含一到多个单词,第一个单词首字母小写,其余单词首字母大写,其他字母均小写。例如:name、gender、somePara等。

    下面就给出常用的一些命名规范,供读者在开发中参考。

    1.命名空间

    命名空间命名采用Pascal风格,取名的一般规则如下。

    CompanyName.TechnologyName

    例如:

    Microsoft.Office

    MyCompany.NamingRule.Test

    另外,需要用复数的时候要使用复数的名称空间名。例如,使用System.Collections而不是System.Collection。但是,当遇到缩写形式时,通常不需要使用复数。例如:使用System.IO而不是System.IOs。

    名称空间和类不能使用同样的名字。例如,有一个类被命名为Student后,就不要再使用Student作为一个名称空间。

    2.类

    C#中的类命名采用Pascal命名风格,取名的规则如下。

    (1)在为类命名前首先要知道该类的作用,尽量以名词或名词短语命名,使程序员通过类名提供的线索,便可以了解这个类的基本功能。

    (2)尽量不使用缩写,而用全写。例如:使用CollegeStudent而不用CollegeStu。

    (3)不要使用任何类前缀(例如C)和后缀(例如Class)。

    (4)不要使用带下划线的字符(例如College_Student)。

    下面是一个合理的类名的示例。

    代码19-1  类命名示例

    /// <summary>

    /// 类名:Pascal命名风格,形如SomeClass。

    /// </summary>

    pulibc class CollegeStudent

    {

          …

    }

    3.私有成员

    类的成员变量采用Camel风格,并使用前缀m_或者_。下面是一些合理的私有成员示例。

    代码19-2  私有成员命名示例

    class CollegeStudent

    {

          /// <summary>

          /// 私有成员命名:Camel命名风格,形如member。

          /// </summary>

          private string m_name;

          private int m_age;

    }

    另外,有些程序员习惯于使用数据类型前缀,用来确定参数的数据类型。例如strName、nAge等,但这不是通用的规范。

    4.属性

    类的属性采用Pascal风格。下面是一些合理的属性示例。

    代码19-3  属性命名示例

    class CollegeStudent

    {

          /// <summary>

          /// 属性命名:Pascal命名风格,形如Name。

          /// </summary>

          public string Name

          {

                set

                {

                         if(value!=null)

                                this.m_name=value;

                }

                get

                {

                         return this.m_name;

                }

          }

    }

    5.方法

    通常每个方法都是执行类的一个“动作”,所以对方法的命名应该清楚地说明该方法是做什么的,用“动词+名词”的结构可以更加清晰的表达这种含义。例如,用ShowInfo()代替Info(),用LoadData()代替DataLoad(),这样做的目的是更加明确这个方法的功能。

    下面是一些合理的方法名示例。

    代码19-4  方法命名示例

    class CollegeStudent

    {

          /// <summary>

          /// 方法名:Pascal命名风格,形如SomeMethod。

          /// </summary>

          public void EnterSchool() {…}

    }

    另外,常常使用一些前缀来表达方法的含义,如下。

    (1)Is的含义为问一个关于某样事物的问题。例如:IsMale()。

    (2)Get的含义为取得一个数值。例如:GetInfo()。

    (3)Set的含义为设定一个数值。例如:SetInfo()。

    6.方法参数

    C#中,方法的参数采用camel风格。另外,有些程序员习惯于使用数据类型前缀,用来确定参数的数据类型。例如strName、nAge等。

    下面是一些方法参数命名的示例。

    代码19-5  方法参数命名示例

    class CollegeStudent

    {

          public void SetInfomation(string name,int age){…}

    }

    7.接口

    同方法相似,接口采用Pascal命名规范,取名的规则如下。

    (1)使用I作为前缀,表示其为一个接口。

    (2)使用名词或名词短语,或者描述行为的形容词来命名接口。例如IComponent(描述性名词)、ICustomAttributeProvider(名词短语)和IPersistable(形容词)。

    (3)尽量不使用缩写,而用全写。例如:使用IComponent而不用IComp。

    (4)不要使用带下划线的字符(例如ICustom_AttributeProvider)。

    例如:

    代码19-6  接口命名示例

    class CollegeStudent

    {

          /// <summary>

          /// 接口名:Pascal命名风格,形如ISomeInterface。

          /// </summary>

          public interface IPlay{};

    }

    8.变量

    局部变量采用camel风格,并尽量使用描述性强的名词或名词短语,并且不使用缩写,如使用number,而不使用num。下面是一些变量命名的示例。

    int number=0;

    string sqlString=””;

    double averageScore=0.0;

    CollegeStudent collegeStudent=new CollegeStudent();


    最新回复(0)