程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 編碼規范總結——磨刀不誤砍柴工,編碼磨刀不誤砍柴工

編碼規范總結——磨刀不誤砍柴工,編碼磨刀不誤砍柴工

編輯:C#入門知識

編碼規范總結——磨刀不誤砍柴工,編碼磨刀不誤砍柴工


目錄

1.簡介... 2

2.適用范圍... 2

3.規范目的... 2

4.代碼組織與風格... 2

4.1 Tab鍵... 2

4.2 縮進... 3

4.3空行... 3

4.4函數長度... 3

4.5行寬... 3

4.6{ “,”} 3

5.文件命名... 3

6.命名... 4

6.1基本約定... 4

6.2程序集命名... 4

6.3命名空間命名... 4

6.4類和接口命名... 5

6.5方法命名... 5

6.7變量命名... 5

6.8組件名稱縮寫列表... 5

6.9數據庫縮寫列表... 7

6.10其他命名... 8

7.類型設計... 8

7.1類型和命名空間... 8

7.2類型和接口選擇... 9

7.3屬性和方法的選擇... 9

7.4類設計... 9

7.5枚舉設計... 9

8.成員設計... 10

8.1方法重載... 10

8.2屬性設計... 11

8.3構造函數設計... 11

8.4字段設計... 11

8.5參數設計... 11

8.6擴展性設計... 12

8.7異常處理... 12

9.代碼注釋... 12

9.1代碼注釋約定... 12

9.2文件頭部注釋... 13

9.3方法注釋... 14

9.4代碼行注釋... 15

9.5變量注釋... 15

10.參考文檔... 15 

術語:

PasalCasing:標識符的第一個單詞的字母大寫;

CamelCasing:標識符的第一個單詞的字母小寫。 

1.簡介

本規范為一套編寫高效可靠的 C# 代碼的標准、約定和指南。它以安全可靠的軟件工程原則為基礎,使代碼編寫得易於理解、維護和增強,同時提高生產效率。 

2.適用范圍

3.規范目的

編碼規范背景:

1.    一個軟件的生命周期中,80%的花費在於維護;

2.    幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發人員來維護;

3.    編碼規范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼。為了執行規范,每個軟件開發人員必須一致遵守編碼規范:

4.代碼組織與風格

4.1 Tab鍵

       換行要使用一個為四個空格的Tab。

4.2 縮進

       一個代碼塊內同級代碼統一使用相同的Tab長度。

4.3空行

       適當增加空行,增加代碼塊之間的可讀性。

在類與類、接口與接口之間添加兩行空行。

以下情況可以適當添加一行空行:

方法之間、局部變量和適當語句之間、不同功能邏輯塊之間等情況。

4.4函數長度

每個方法有效代碼(不包括注釋和空行)不要超過50行,做到方法職責單一。

4.5行寬

每行代碼和注釋不要超過70個字符或屏幕的寬度,如超過則應換行,換行後的代碼應該縮進一個Tab。

4.6{ “,”}

開括號“{”要放在代碼塊的所有者的下一行,單起一行;

閉括號“}”要單獨放在代碼塊的最後一行,單起一行。 

5.文件命名

在文件名前增加三字符的前綴,前綴字母一律為小寫,例如:

一個窗體文件可以增加frm前綴,frmImportData.cs   

例如:

數據導入的窗體可以命名為frmImportData.cs 

例如,對於類HelloWorld, 相應的文件名應為

HelloWorld.cs (或, HelloWorld.vb)  

6.命名

6.1基本約定

標示符

命名類型

示例

命名空間

Pascal

namespace    Com. SMSoft.ProductionCenter

類型

Pascal

public   class Student

接口

Pascal

public   interface ICreateTable

方法

Pascal

public   void UpdateData()

屬性

Pascal

public   int Length{ get; set; }

事件

Pascal

public   event EventHandler ChangedEvent;

枚舉值

Pascal

FileEnun{Open;   Close; }

非私有字段

Pascal

public   string FieldName;

私有字段

Camel

private   string fieldName;

參數

Camel

public   void UpdateData(string fieldName)

局部變量

Camel

string   fieldName;

 

6.2程序集命名

公司域名(SMSoft)+ 項目名稱 + 模塊名稱(可選),例如:

中心系統程序集:SMSoft.ProductionCenter;

中心系統業務邏輯程序集:SMSoft. ProductionCenter.Business;

6.3命名空間命名

命名空間應使用解決方案的名稱,每個項目應設置一個二級命名空間,並以項目名命名。

采用和程序集命名相同的方式:公司域名(SMSoft)+ 項目名稱 + 模塊名稱。 另外,一般情況下建議命名空間和目錄結構相同。例如:

中心系統:SMSoft.ProductionCenter;

中心系統下的用戶控件:SMSoft.ProductionCenter.UserControl;

中心系統業務邏輯:SMSoft. ProductionCenter.Business;

中心系統數據訪問:SMSoft. ProductionCenter.Data;

6.4類和接口命名

類的名字要用名詞,避免使用單詞的縮寫,除非它的縮寫已經廣為人知,

如TCP、HTTP、SQLHelper。

接口的名字要以字母I開頭。保證對接口的標准實現名字只相差一個“I”前綴,例如對ICompare的標准實現為Compare;

泛型類型參數的命名:命名要為T或者以T開頭的描述性名字,例如:

public class List<T>

public class MyClass<TSession>

對同一項目的不同命名空間中的類、接口要避免命名重復。避免引用時的沖突和混淆。

6.5方法命名

方法名一般采用:動詞+名詞,表達要做什麼。

如果方法返回一個成員變量的值,方法名一般為Get+成員變量名;

如果方法返回的值是bool變量,一般以Is作為前綴或Try前綴;

如果方法修改一個成員變量的值,方法名一般為:Set + 成員變量名。

6.7變量命名

按照使用范圍來分,我們代碼中的變量的基本上有以下幾種類型:

類的公有變量(受保護同公有);類的私有變量;方法的參數變量;方法內部使用的局部變量。這些變量的命名規則基本相同。區別如下:

例如mWorkerName,wokrerName;

不要用_或&作為第一個字母;

盡量要使用短而且具有意義的單詞;

單字符的變量名一般只用於生命期非常短暫的變量。i,j,k,m,n一般用於integer;c,d,e 一般用於characters;s用於string

如果變量是集合,則變量名要用復數。例如表格的行數,命名應為:RowsCount;

命名組件要采用匈牙利命名法,所有前綴均應遵循同一個組件名稱,參考縮寫列表。

6.8組件名稱縮寫列表

縮寫的基本原則是取組件類名各單詞的第一個字母,如果只有一個單詞,則去掉其中的元音,留下輔音。縮寫全部為小寫。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved