C 編碼標準

2021-07-11 04:10:37 字數 4353 閱讀 2605

命名規範 

1.利用pascal的方式定義型別、方法名和常量 

複製c#**儲存**public class someclass

}2. 對於區域性變數和方法的引數使用駱駝命名法 

複製c#**儲存**int number;

void mymethod(int somenumber)

3. 介面的名稱前面加上i 

複製c#**儲存**inte***ce imyinte***ce

4. 在私有成員變數前面加上m_。對於m_後面的變數名使用駱駝命名法 

複製c#**儲存**public class someclass

5. 對自定義的屬性類加上字尾attribute 

6. 對自定義的異常類加上字尾exception 

7. 方法的命名使用動詞——物件對。例如showdialog() 

8. 有返回值的方法的命名中要有對返回值的描述。例如getobjectstate() 

9. 使用帶有說明性的變數名 

a)避免單字元的變數名。例如i或t。使用類似於index或temp這樣有意義的名字。 

b)對於public或protected型別的變數避免使用匈牙利表示法 

c)不要所寫單詞(例如用num取代number) 

10. 總是使用c#預定義的型別而不是使用在system命名空間中的別名。例如: 

使用object而不是object 

使用string 而不是string 

使用int而不是int32 

11. 在使用泛型的時候,型別的首字母要大寫。當處理.net中的type型別的時候,保留type字尾。 

複製c#**儲存**//正確

public class linklist

//避免

public class linklist

12. 使用有意義的名字定義命名空間。例如產品名或者公司名 

13. 避免通過全限定方式使用型別名稱,使用using關鍵字。 

14. 避免在乙個命名空間中使用using關鍵字 

15. 把所有系統框架提供的命名空間組織到一起,把第三方提供的命名空間放到系統命名空間的下面 

16. 使用**推導而不要顯示的例項化乙個** 

17. 維護嚴格的**縮排。不要使用tabs或非標準的縮排,例如乙個空格。推薦的縮排市3到4個空格。 

18. 在和你的**縮排處於同乙個級別處為該**新增注釋 

19. 所有的注釋都應該通過拼寫檢查。注釋中的錯誤拼寫意味著開發進度的延緩 

20. 所有類成員變數應該被宣告在類的頂部,並用乙個空行把他們和方法以及屬性的宣告區分開 

21. 在最靠近乙個區域性變數被使用的地方宣告該區域性變數 

22. 乙個檔名應該能夠反映它所對應的類名 

23. 當使用乙個部分類並把該類分布到不同的檔案中時,在每乙個檔名末尾都加上該檔案實現的部分在類整體中扮演的作用。 

24. 總是要把「

18. 避免利用返回值作為函式的錯誤** 

19. 避免自定義異常類 

20. 當自定義異常類的時候 

a)讓你自定義的異常類從exception類繼承 

b)提供自定義的序列化機制 

21. 避免在乙個程式集中定義多個main()方法 

22. 只把那些絕對需要的方法定義成public,而其他的方法定義成internal 

23. 避免friend assermblies,因為這回增加程式集之間的耦合性 

24. 避免讓你的**依賴於執行在某個特定地方的程式集 

26. 避免顯示指定列舉的值 

複製c#**儲存**//正確

public enum color

//錯誤

public enum color

27. 避免為列舉指定乙個型別 

複製c#**儲存**//避免

public enum color : long

28. 對於if語句,總使用一對{}把下面的語句塊包含起來,哪怕只有一條語句也是如此 

29. 避免使用三元條件操作符 

30. 避免利用函式返回的boolean值作為條件語句。把返回值賦給乙個區域性變數,然後再檢測 

31. 總是使用以零為基數的陣列 

32. 總是使用乙個for迴圈顯示的初始化乙個引用成員的陣列 

33. 使用屬性來替代public或protected型別的成員變數 

34. 不要使用繼承下來的new操作符,使用override關鍵字覆寫new的實現 

35. 在乙個非密封(non-sealed)類中,總是把那些public和protected的方法定義為virtual 

36. 除非為了和其他語音進行互動,否則絕對不要使用不安全的** 

37. 避免顯示型別轉換。使用as關鍵字安全的轉換到另乙個型別 

複製c#**儲存**dog dog = new germanshepherd();

germanshepherd shepherd = dog as germanshepherd;

if (shepherd != null)

38. 在呼叫乙個**前,總是檢查它是否為null 

39. 不要提供public的事件成員變數。改用event accessor 

40. 總是使用介面 

41. 介面和類中方法和屬性的比應該在2:1左右 

42. 避免只有乙個成員的介面 

43. 努力保證乙個介面有3~5個成員 

44. 不要讓乙個介面中成員的數量超過20,而12則是更為實際的限制。 

45. 避免在介面中包含事件 

46. 當使用抽象類的時候,提供乙個介面 

47. 在類繼承結構中暴露介面 

48. 推薦使用顯示介面實現 

49. 從來不要假設乙個型別支援某個介面。在使用前總是要詢問一下。 

複製c#**儲存**sometype obj1;

imyinte***ce obj2;

//some code to initialize,then:

obj2 = obj1 as imyinte***ce;

if (obj2 != null)

else

50.不要硬編碼向使用者顯示的字串。要使用資源 

51. 不要硬編碼那些可能會隨發布環境變化而變化的字串,例如資料庫連線字串 

52. 使用string.empty取代"" 

53. 使用乙個長字串的時候,使用stringbuilder代替string 

54. 避免在結構中提供方法a)引數化的建構函式是鼓勵使用的b)可以過載運算子 

55. 當宣告了靜態成員的時候,總是要提供乙個靜態建構函式 

56. 當早繫結可能的時候就盡量不要使用遲繫結 

57. 讓你的應用程式支援跟蹤和日誌 

58. 除了要在switch語句中實現**跳轉,不要使用goto關鍵字 

59. 總在switch語句的default情形提供乙個斷言 

複製c#**儲存**int number = somemethod();

switch (number)

60. 除了在乙個建構函式中呼叫其他的建構函式之外,不要使用this關鍵字 

61. 不要使用base訪問基類的成員,除非你在呼叫乙個基類建構函式的時候要決議乙個子類的名稱衝突 

62. 總是要在unchecked狀態下執行**,但是為了防止溢位或下溢操作,要果斷使用checked模式 

專案設定和專案結構 

1. 總是在4級警告上建立你的專案 

2. 在發布版中,把警告當成錯誤來對待 

3. 避免關閉編譯器的某些警告選項 

4. 總是要在應用程式的配置檔案中顯示指定支援的執行時版本 

5. 避免顯示進行clr程式集版本的重定向和繫結 

6. 避免顯示的預處理定義(#define)。使用專案設定來定義條件編譯常量 

7. 不要在assemblyinfo.cs中加入任何邏輯 

8. 不要在assemblyinfo.cs之外的檔案中新增程式級屬性。 

9. 提供assemblyinfo.cs中的所有資訊,例如公司名、描述和版權事項等 

10. 同乙個解決方案中的程式集引用都應該使用相同路徑 

11. 禁止在程式集之間使用迴圈引用 

12. 避免多模組程式集 

13. 避免利用異常視窗削弱異常處理 

14. 堅持在同乙個解決方案中的所有程式集之間使用統一的版本號 

15. 把所有解決方案的資訊存放到乙個共享的solutioninfo.cs檔案中 

17. 修改visual studio 2005 的預設專案結構來適應你的專案規劃,並且對專案資料夾和檔案使用統一的結構 

18. 乙個release發布應該包含除錯資訊 

19. 總是對你的程式集進行簽名,包括你的客戶應用程式

C 編碼標準 二

先八卦一下,昨天寫了c 編碼標準 一 得到了 h82258652的補充,感到非常欣慰,一是感覺他的觀點擴充套件了我的視野,豐富了我的看法,所以更堅定了我繼續寫部落格的想法,由於是五筆打字,經常不寫東西,有些字的字根都忘記了,所以通過寫部落格也可以多記些字根,二是決定把多年的一些東西分享出來,一起溝通...

語音編碼標準

1.波形編碼 波形編碼是最簡單也是應用最早的語音編碼方法。最基本的一種就是pcm編碼,如g.711 建議中的a 律或 律。apcm dpcm和adpcm也屬於波形編碼的範疇,使用這些技術的標準有g.721 g.726 g.727 等。波形編碼具有實施簡單 效能優良的特點,不足是編碼頻寬往往很難再進一...

語音編碼標準

1.波形編碼 波形編碼是最簡單也是應用最早的語音編碼方法。最基本的一種就是pcm編碼,如g.711 建議中的a 律或 律。apcm dpcm和adpcm也屬於波形編碼的範疇,使用這些技術的標準有g.721 g.726 g.727 等。波形編碼具有實施簡單 效能優良的特點,不足是編碼頻寬往往很難再進一...