一、命名
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")
{
}
}
控制項命名沒有規範,只有常用,當然你可以常用變成規範;
控制項 縮寫
Label lbl
TextBox txt
CheckBox chk
Button btn
ListBox lst
DropDownList ddlst
LinkButton lnkbtn
ImageButton imgbtn
DropDownList ddlst
RadioButtonList rblst
CheckBoxList chklst
DataGrid dg
DataList dl
HyperLink hlnk
Image img