C#項目開發(fā)實例之規(guī)范的制定
C#項目開發(fā)實例中,對于規(guī)范的制定,是很重要的要求。合理的方法名,合適的命名都是C#項目開發(fā)實例中規(guī)范的內(nèi)容,可大大提高系統(tǒng)的可維護性和健壯性,并可使系統(tǒng)關(guān)系清晰。
表意清晰的命名規(guī)范是程序規(guī)劃的核心,如果整個系統(tǒng)所有的命名都與其功能相適合,并可以讓人“望文知意”,例如“Age”、“SetAge ()”,可大大提高系統(tǒng)的可維護性和健壯性,并可使系統(tǒng)關(guān)系清晰。反之,如果命名不能反應(yīng)其含義,例如“v001”、“f002 ()”,那么將適得其反。
說明 |
常用的命名風(fēng)格如下。 (1)Pascal風(fēng)格:包含一到多個單詞,每一個單詞***個字母大寫,其他字母小寫,其余字母均小寫。例如:CollegeStudent、HelloWorld等。 (2)Camel風(fēng)格:包含一到多個單詞,***個單詞首字母小寫,其余單詞首字母大寫,其他字母均小寫。例如:name、gender、somePara等。 |
下面就給出常用的一些命名規(guī)范,供讀者在開發(fā)中參考。
1.命名空間
命名空間命名采用Pascal風(fēng)格,取名的一般規(guī)則如下。
CompanyName.TechnologyName
例如:
Microsoft.Office
MyCompany.NamingRule.Test
另外,需要用復(fù)數(shù)的時候要使用復(fù)數(shù)的名稱空間名。例如,使用System.Collections而不是System.Collection。但是,當(dāng)遇到縮寫形式時,通常不需要使用復(fù)數(shù)。例如:使用System.IO而不是System.IOs。
名稱空間和類不能使用同樣的名字。例如,有一個類被命名為Student后,就不要再使用Student作為一個名稱空間。
2.類
C#中的類命名采用Pascal命名風(fēng)格,取名的規(guī)則如下。
(1)在為類命名前首先要知道該類的作用,盡量以名詞或名詞短語命名,使程序員通過類名提供的線索,便可以了解這個類的基本功能。
(2)盡量不使用縮寫,而用全寫。例如:使用CollegeStudent而不用CollegeStu。
(3)不要使用任何類前綴(例如C)和后綴(例如Class)。
(4)不要使用帶下劃線的字符(例如College_Student)。
下面是一個合理的類名的示例。
代碼19-1 類命名示例
- ///
- /// 類名:Pascal命名風(fēng)格,形如SomeClass。
- ///
- pulibc class CollegeStudent
- {
- …
- }
3.私有成員
類的成員變量采用Camel風(fēng)格,并使用前綴m_或者_。下面是一些合理的私有成員示例。
代碼19-2 私有成員命名示例
- class CollegeStudent
- {
- ///
- /// 私有成員命名:Camel命名風(fēng)格,形如member。
- ///
- private string m_name;
- private int m_age;
- }
另外,有些程序員習(xí)慣于使用數(shù)據(jù)類型前綴,用來確定參數(shù)的數(shù)據(jù)類型。例如strName、nAge等,但這不是通用的規(guī)范。
4.屬性
類的屬性采用Pascal風(fēng)格。下面是一些合理的屬性示例。
代碼19-3 屬性命名示例
- class CollegeStudent
- {
- ///
- /// 屬性命名:Pascal命名風(fēng)格,形如Name。
- ///
- public string Name
- {
- set
- {
- if(value!=null)
- this.m_name=value;
- }
- get
- {
- return this.m_name;
- }
- }
- }
5.方法
通常每個方法都是執(zhí)行類的一個“動作”,所以對方法的命名應(yīng)該清楚地說明該方法是做什么的,用“動詞+名詞”的結(jié)構(gòu)可以更加清晰的表達這種含義。例如,用ShowInfo()代替Info(),用LoadData()代替DataLoad(),這樣做的目的是更加明確這個方法的功能。
下面是一些合理的方法名示例。
代碼19-4 方法命名示例
- class CollegeStudent
- {
- ///
- /// 方法名:Pascal命名風(fēng)格,形如SomeMethod。
- ///
- public void EnterSchool() {…}
- }
另外,常常使用一些前綴來表達方法的含義,如下。
(1)Is的含義為問一個關(guān)于某樣事物的問題。例如:IsMale()。
(2)Get的含義為取得一個數(shù)值。例如:GetInfo()。
(3)Set的含義為設(shè)定一個數(shù)值。例如:SetInfo()。
6.方法參數(shù)
C#中,方法的參數(shù)采用camel風(fēng)格。另外,有些程序員習(xí)慣于使用數(shù)據(jù)類型前綴,用來確定參數(shù)的數(shù)據(jù)類型。例如strName、nAge等。
下面是一些方法參數(shù)命名的C#項目開發(fā)實例。
代碼19-5 方法參數(shù)命名C#項目開發(fā)實例
- class CollegeStudent
- {
- public void SetInfomation(string name,int age){…}
- }
7.接口
同方法相似,接口采用Pascal命名規(guī)范,取名的規(guī)則如下。
(1)使用I作為前綴,表示其為一個接口。
(2)使用名詞或名詞短語,或者描述行為的形容詞來命名接口。例如IComponent(描述性名詞)、ICustomAttributeProvider(名詞短語)和IPersistable(形容詞)。
(3)盡量不使用縮寫,而用全寫。例如:使用IComponent而不用IComp。
(4)不要使用帶下劃線的字符(例如ICustom_AttributeProvider)。
例如:
代碼19-6 接口命名示例
- class CollegeStudent
- {
- ///
- /// 接口名:Pascal命名風(fēng)格,形如ISomeInterface。
- ///
- public interface IPlay{};
- }
8.變量
局部變量采用camel風(fēng)格,并盡量使用描述性強的名詞或名詞短語,并且不使用縮寫,如使用number,而不使用num。下面是一些變量命名的示例。
- int number=0;
- string sqlString=””;
- double averageScore=0.0;
- CollegeStudent collegeStudent=new CollegeStudent();
【編輯推薦】