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