C# 編碼規則
一、命名
1.用pascal規則來命名方法和類型.
public class TextBox
{
public void DataBind()
{
}
}
2.用camel規則來命名局部變數和方法的參數.
string userName;
public AddUser(string userId, byte[] password);
3.所有的成員變數前加首碼 _
public class Database
{
private string _connectionString;
}
4.介面的名稱加首碼 I.
interface ICompare
{
int compare();
}
5.自訂的屬性以Attribute結尾
public class AuthorAttribute : Attribute
{}
6.自訂的異常以Exception結尾
public class AppException : Exception
{}
7.方法的命名.一般將其命名為動賓短語.
ShowDialog()
CreateFile()
GetPath()
8.代碼的縮排.要用Tab,而不要用space.
9.局部變數的名稱要有意義.不要用x,y,z等等(除用於For迴圈變數中可使用i,j,k,l,m,n).
string userName;
10.所有的成員變數聲明在類的頂端,用一個換行把它和方法分開.
11.用有意義的名字命名namespace,如:產品名、公司名.
12.建議局部變數在最接近使用它時再聲明.
13.使用某個控制項的值時,盡量命名局部變數.
14.把引用的系統的namespace和自訂或第三方的用一個換行把它們分開.
15.檔案名稱要能反應類的內容,最好是和類同名,一個檔案中一個類或一組關連類.
16.目錄結構中要反應出namespace的層次.
17.大括弧"{"要新起一行.
public class AuthorAttribute : Attribute
{}
二、編碼習慣.
1.用C#預定義的類名,而不要用別名.
string userName; 而不是 System.String userName;
int number; 而不是 System.Int32;
2.一行不要超過80個字元.
3.盡量不要手工更改機器產生的程式碼,若必須更改,一定要改成和機器產生的程式碼風格一樣.
4.關鍵的語句(包括聲明關鍵的變數)必須要寫注釋.
5.文字常量和數字常量不要寫入程式碼,應該用常量類或枚舉代替.
6.不準使用goto系列語句.
7.不要聲明public和protected的成員變數,應用property.
8.不要聲明public的event,應用事件訪問器.
public class Source
{
private EventHandler m_NumberChangeEvent;
public event EventHandler NumberChangeEvent
{
add
{
m_NumberChangeEvent += value;
}
remove
{
m_NumberChangeEvent -= value;
}
}
}
9.類型轉換的使用規則.
Animal animal = new Dog();
Dog dog = animal as Dog;
if (dog != null)
{}
10.產生和構建一個長的字串時,一定要使用StringBuilder,而不用string.
11.始終使用"{ }"包含if下的語句,即使只有一條語句.
12.switch語句一定要有default來處理意外情況.
13.盡量少使用三目運算子 ? : ,而要使用if語句.
14.盡量不用使用this引用,除非是要調用類中的另一個Constructor.
public class Person
{
public Person(string name)
{
}
public Person() : this("Jim")
{
}
}