1. 程式人生 > >C#代碼規範整理

C#代碼規範整理

static return 同名 保護 類成員 object 註意 sum ddl

命名規範制定意義

1. 方便代碼的交流和維護,便於日後自己的再次閱讀。

2. 不影響編碼的效率,不與大眾習慣沖突。

3. 使代碼更美觀、閱讀更方便。

4. 使代碼的邏輯更清晰、更易於理解。


名詞解釋

Pascal:帕斯卡命名,每個單詞第一個字母大寫

Camel :駝峰命名,第一個單詞字母小寫,其余單詞第一個大寫


總結表:

標識符

大小寫

樣例

說明

名字空間

Pascal

namespace System.Security {

}

用有意義的名字命名 namespace

,如:產品名、公司名

Pascal

public class StreamReader {

}

使用名詞、名詞短語命名

接口

Pascal

public interface IEnumerable {

}

以 I 開始,後面加上名詞、名詞短語、形容詞命名。

字段 ( 私有、保護 )

Camel

private string userName;

第一個單詞小寫,後面連接的單詞首字母大寫

字段 ( 公共、靜態 )

Pascal

public static readonly string UserId ;

屬性

Pascal

private int length;

public int Length { get; }

字段private且小寫,然後屬性public大寫

枚舉

Pascal

enum FileMode {

Append,

}

事件

Pascal

public event EventHandler Exited ;

方法

Pascal

public string ToString ();

一般將其命名為動賓短語, “動詞+對象 ”.

參數

Camel

public static int ToInt32(string userId );


基礎數據類型命名

數據類型

標準命名舉例

array

arrShoppingList

bool

isPostBack

string

strFirstName

int

intId

DateTime

dtmStartDate

object

objDog

上面是常用的數據類型


註意事項:

序號

說明

示例

1

除約定俗成的,別用縮寫。用 name, address, salary 等代替 nam, addr, sal

2

除用於循環,別使用單個字母的變量象 i, n, x 等. 而要使用 index, temp 等

for ( int index = 0; index < count; index++ ){ ...}

3

自定義的異常以 Exception結尾

public class AppException : Exception

4

代碼的縮進 .要用 Tab,而不要用 space.

5

所有的類成員變量應該被聲明在類的頂部,並用一個空行把它們和方法以及屬性的聲明區分開

6

建議局部變量在最接近使用它時再聲明 .

7

文件名要能反應類的內容,最好是和類同名,一個文件中一個類或一組關連類

8

大括號 "{"要新起一行

9

單獨方法要加註釋

/// <summary>

/// 根據id獲得姓名

/// </summary>

/// <param name="id">檢索的id</param>

/// <returns></returns>

public string GetName(int id)

{

return "xiaomi";

}

10

不要對字段名或靜態字段名應用前綴。 具體說來, 不要對字段名稱應用前綴來區分靜態和非靜態字段。

例如,應用 g_ 或 s_ 前綴是不正確的。

11

避免容易被主觀解釋的難懂的名稱

方法名 AnalyzeThis() ,或者屬性名 xxK8。這樣的名稱會導致多義性。

12

在類屬性的名稱中包含類名是多余的

如 Book.BookTitle 。而是應該使用 Book.Title

13

只要合適,在變量名的末尾或開頭加計算限定符

( Avg、Sum、Min、Max、Index )

14

在變量名中使用互補對

如 min/max 、begin/end 和 open/close

15

布爾變量名應該包含 Is ,這意味著 Yes/No 或 True/False 值

fileIsFound

16

在命名狀態變量時,避免使用諸如 Flag 的術語。狀態變量不同於布爾變量的地方是它可以具有兩個以上的可能值

不是使

用 documentFlag ,而是使用更具描述性的名稱,如 documentFormatType 。 (此項只供參考)

17

用於事件處理的委托添加 “EventHandler ”後綴

public delegate void MouseEventHandler(object sender, MouseEventArgs e);

18

用於事件處理之外的那些委托添加 “Callback ”後綴

19

不要給委托添加 “Delegate ”後綴

C#代碼規範整理