C#項目開發規範

來源:互聯網
上載者:User

表意清晰的命名規範是程式規劃的核心,如果整個系統所有的命名都與其功能相適合,並可以讓人“望文知意”,例如“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();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.