C# 编程规范
一、命名
1.用pascal規(guī)則來命名方法和類型.
publicclass?TextBox
{
?????publicvoid?DataBind()?
???? {
???? }
}
2.用camel規(guī)則來命名局部變量和方法的參數(shù),
string?strUserName;
public?AddUser(string?userId,?byte[] passWord);
(并加前綴 數(shù)據(jù)類型,可選。)
str int bln byt chr lng shr flt dbl lst:list dct:dictionary lnk:linkedlist?hst dts:dataset arr:arry arl:arraylist?
3.用camel規(guī)則來命名成員變量(字段),并加前綴 _
publicclass?Database
{
?????privatestring?_connectionString;
}
3.1APM加前綴Begin 及 End
4.接口的名稱加前綴 I.
interface?ICompare
{
?????int?compare();
}
5.自定義的屬性加后綴Attribute
publicclass?AuthorAttribute : Attribute
{
}
6.自定義的異常加后綴Exception
publicclass?AppException : Exception
{
}
6.1 EAP加后綴 Async Completed Progressed
7.方法名命名采用動賓結(jié)構(gòu)
ShowDialog()
CreateFile()
GetPath()
8.代碼的縮進使用用space,不要使用Tab(編輯器設(shè)置為使用空格,縮進4空格)
9.局部變量的名稱要有意義.不要用x,y,z等等(除用于For循環(huán)變量中可使用i,j,k,l,m,n).
string?userName
10.所有的成員變量聲明在類的頂端,用一個換行把它和方法分開.
11.用有意義的名字命名namespace,如:產(chǎn)品名、公司名.
12.建議局部變量在最接近使用它時再聲明.
13.使用某個控件的值時,盡量命名局部變量.
14.用一個換行把引用的namespace,按順序分為: 系統(tǒng)引用、第三方引用、自定義引用 三個部分
15.文件名跟類名一致,一個文件中一個類或一組關(guān)連類.
16.目錄結(jié)構(gòu)要與namespace層次一致.
17.大括號"{"要新起一行.
publicclass?AuthorAttribute : Attribute
{
}
二、編碼習慣.
1.用C#預定義的類名,而不要用別名.
string?userName;?? 而不是 System.String userName;
int?number;? ? ? ? ? ??而不是 System.Int32;
2.一行不要超過80個字符.
3.盡量不要手工更改機器生成的代碼,而是使用工具重新生成。若必須更改,一定要改成和機器生成的代碼風格一樣,并在文件頭部做出重要生命,防止覆蓋
4.關(guān)鍵的語句(包括聲明關(guān)鍵的變量)必須要寫注釋.
5.文字常量和數(shù)字常量不要硬編碼,應(yīng)該用常量類或枚舉代替.
6.不準使用goto系列語句.
7.不要聲明public和protected的成員變量,應(yīng)用property.
8.不要聲明public的event,應(yīng)用事件訪問器.
public?class?Source
{
?????private?EventHandler m_NumberChangeEvent;
?????public?event?EventHandler NumberChangeEvent
? {
???????? add
???????? {
????????????? m_NumberChangeEvent +=?value;
???????? }
???????? remove
???????? {
????????????? m_NumberChangeEvent -=?value;
???????? }
???? }
}
9.類型轉(zhuǎn)換的使用規(guī)則.
Animal animal =?new?Dog();
Dog dog = animal?as?Dog;
if?(dog !=?null)
{
}
10.生成和構(gòu)建一個長的或者頻繁構(gòu)建的字符串時,一定要使用StringBuilder,而不用string.
11.始終使用"{?}"包含if下的語句,即使只有一條語句.
12.switch語句一定要有default來處理意外情況.
13.盡量少使用三目運算符 ? : ,而要使用if語句.
14.盡量不用使用this引用,除非是要調(diào)用類中的另一個Constructor.
publicclass?Person
{
?????public?Person(string?name)
???? {
???? }???
?????public?Person() :?this("Jim")
???? {
???? }
}
總結(jié)
- 上一篇: 【转】MVVM大比拼小结
- 下一篇: 节假日过省交界收费站免费吗?2020年过