開始實(shí)習(xí)之后,才發(fā)現(xiàn)自己是多么地菜。還有好多東西還要去學(xué)習(xí)。
公司很好,還可以幫你買書。有一天隨口問了一下上司D,代碼規(guī)范上面有什么要求。然后D在Amazon上面找到了這本書《C#編程風(fēng)格(The Elements of C# Style)》(中英對照),讓我直接買下開看,按上面的要求編寫就可以了。書可以找秘書F去報(bào)銷。
上個(gè)星期四在Amazon下單,周一才到。這書確實(shí)來的有點(diǎn)慢,沒關(guān)系,我看的快。從周一到周五,用每天上下班在擠地鐵(廣州地鐵你懂的)的時(shí)間,我把書在五個(gè)工作日就看完了。當(dāng)然,關(guān)鍵是夠薄。描述也相當(dāng)簡練。
以下是我看完還記得的部分:
1.空白
這個(gè)沒啥好說的,意思就是該留空白的時(shí)候要果斷留,不要怕浪費(fèi)?瞻子兄谔岣叽a的可讀性。
2.塊
一般表示用大括號“{”和“}”括起來的部分。
3.駝峰法(小駝峰法)
變量一般用小駝峰法標(biāo)識。駝峰法的意思是:除第一個(gè)單詞之外,其他單詞首字母大寫。譬如
int myStudentCount;
變量myStudentCount第一個(gè)單詞是全部小寫,后面的單詞首字母大寫。
4.Pascal法(大駝峰法)
相比小駝峰法,大駝峰法把第一個(gè)單詞的首字母也大寫了。常用于類名,函數(shù)名,屬性,命名空間。譬如
public class DataBaseUser;
5.全局變量
一般慣例是加一個(gè)前綴或者后綴用于私有變量和局部變量。通常是用下劃線“_”來標(biāo)識。譬如
private int myStudentCount_;
下劃線有加在前面的,也有加在后面的。個(gè)人比較習(xí)慣加在前面。
6.常量
常量通常用全大寫,并用下劃線來分割單詞來標(biāo)志。譬如
private int const STUDENT_COUNT=50;
7.switch
用switch的時(shí)候,無論case是否涵括了所有情況,都應(yīng)該加上Default語句。很多時(shí)候結(jié)果是不再我們考慮范圍內(nèi)的。應(yīng)該盡量涵蓋所有情況。譬如
switch(month)
{
case 1:
//...
break;
case 2:
//...
break;
...
case 12:
//code...
break;
default:
//code...
break;
}
代碼用于處理每個(gè)月的不同情況,雖然已經(jīng)處理了十二個(gè)月的情況,但是代碼還是加上了default用于以防萬一,這是值得推薦的。
8.二元運(yùn)算符
一般在二元運(yùn)算符左右需要加一個(gè)空格。當(dāng)然用VS的人一般都知道當(dāng)你打出每一句代碼的最后標(biāo)志符“;”的時(shí)候,VS會自動處理代碼,給二元運(yùn)算符的左右加上一個(gè)空格。譬如
count = count + i;
可以發(fā)現(xiàn)在“=”和“+”左右都是有一個(gè)空格的。這樣比起不加空格確實(shí)好看很多。不信,你別加試試。
9.條件語句
添加語句上面盡量不要用直接值。譬如
int count = 60; if(count_ >= count) { //code... }
我們推薦這種做法,我們不推薦
if(count_ >= 60) { //code... }
這種做法。當(dāng)要發(fā)生修改的時(shí)候,前者的價(jià)值就相當(dāng)明顯了。
10.使用別名
盡量使用類型名的別名。例如
int count = 60; System.Int32 count2 = 60;
其實(shí)int只是System.Int32的別名而已,兩者產(chǎn)生的效果作用是一模一樣的。不過我們推薦使用前者,不推薦后者。這有歷史的因素吧,不過只要是個(gè)人,都會很自覺寫int,double這些別名吧。
11.原子方法
我們推薦原子操作。一個(gè)函數(shù)不需要做太多的事情。特別是對于類來說。如果一個(gè)實(shí)現(xiàn)可以用幾個(gè)原子方法來完成,我們推薦這種做法,而不推薦把方法寫地太長。最好別超過100行。
12.訪問控制標(biāo)志
雖然可以默認(rèn)不填寫訪問控制符。但是我們不推薦這種做法。我們推薦把類里面所有的變量,方法,屬性,...都寫上訪問權(quán)限。
13.region
#region和#endregion是非常好用的東西。它可以在任何位置,無聊是否在同時(shí)在同一個(gè)塊內(nèi),都可以使用,將代碼收縮。在一個(gè)類里面,我們推薦使用region將代碼分類。譬如