日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#編碼標(biāo)準(zhǔn)

admin
2017年2月7日 18:53 本文熱度 6572
命名規(guī)范
1.利用Pascal的方式定義類型、方法名和常量
public class SomeClass
{
    
const int DefaultSize = 100
;
    public SomeMethod()
    {
    }
}
2. 對于局部變量和方法的參數(shù)使用駱駝命名法
int number;
void MyMethod(int
 someNumber)
{}
3. 接口的名稱前面加上I
interface IMyInterface
{}
4. 在私有成員變量前面加上m_。對于m_后面的變量名使用駱駝命名法
public class SomeClass
{
    
private int
 m_Number;
}
5. 對自定義的屬性類加上后綴Attribute
6. 對自定義的異常類加上后綴Exception
7. 方法的命名使用動詞——對象對。例如ShowDialog()
8. 有返回值的方法的命名中要有對返回值的描述。例如GetObjectState()
9. 使用帶有說明性的變量名
a)避免單字符的變量名。例如i或t。使用類似于index或temp這樣有意義的名字。
b)對于public或protected類型的變量避免使用匈牙利表示法
c)不要所寫單詞(例如用num取代number)
10. 總是使用c#預(yù)定義的類型而不是使用在System命名空間中的別名。例如:
      使用object而不是Object
      使用string 而不是String
      使用int而不是Int32
11. 在使用泛型的時(shí)候,類型的首字母要大寫。當(dāng)處理.NET中的Type類型的時(shí)候,保留Type后綴。
//正確
public class LinkList<K,T>
{}
//避免
public class LinkList<KeyType,DataType>
{}
12. 使用有意義的名字定義命名空間。例如產(chǎn)品名或者公司名
13. 避免通過全限定方式使用類型名稱,使用using關(guān)鍵字。
14. 避免在一個(gè)命名空間中使用using關(guān)鍵字
15. 把所有系統(tǒng)框架提供的命名空間組織到一起,把第三方提供的命名空間放到系統(tǒng)命名空間的下面
16. 使用代理推導(dǎo)而不要顯示的實(shí)例化一個(gè)代理
17. 維護(hù)嚴(yán)格的代碼縮進(jìn)。不要使用tabs或非標(biāo)準(zhǔn)的縮進(jìn),例如一個(gè)空格。推薦的縮進(jìn)市3到4個(gè)空格。
18. 在和你的代碼縮進(jìn)處于同一個(gè)級別處為該代碼添加注釋
19. 所有的注釋都應(yīng)該通過拼寫檢查。注釋中的錯(cuò)誤拼寫意味著開發(fā)進(jìn)度的延緩
20. 所有類成員變量應(yīng)該被聲明在類的頂部,并用一個(gè)空行把他們和方法以及屬性的聲明區(qū)分開
21. 在最靠近一個(gè)局部變量被使用的地方聲明該局部變量
22. 一個(gè)文件名應(yīng)該能夠反映它所對應(yīng)的類名
23. 當(dāng)使用一個(gè)部分類并把該類分布到不同的文件中時(shí),在每一個(gè)文件名末尾都加上該文件實(shí)現(xiàn)的部分在類整體中扮演的作用。
24. 總是要把“{”放在新的一行。
編碼實(shí)踐
1. 避免在同一個(gè)文件中放置多個(gè)類
2. 一個(gè)文件應(yīng)該只向在一個(gè)命名空間內(nèi)定義類型。避免在一個(gè)文件中使用多個(gè)命名空間
3. 避免在一個(gè)文件內(nèi)些多余500行的代碼
4. 避免寫超過25行代碼的方法
5. 避免寫超過5個(gè)參數(shù)的方法。如果要傳遞多個(gè)參數(shù),使用結(jié)構(gòu)
6. 一行不要超過80字符
7. 不要手動去修改任何機(jī)器生成的代碼
a)如果修改了機(jī)器生成的代碼,修改你的編碼方式來死適應(yīng)這個(gè)編碼標(biāo)準(zhǔn)
b)盡可能使用partial classes特性,以提高可維護(hù)性
8. 避免對那些直觀的內(nèi)容作注釋。代碼本身應(yīng)該能夠解釋其自身的含義。由可讀的變量名和方法名構(gòu)成的優(yōu)質(zhì)代碼應(yīng)該不需要注釋。
9. 注釋應(yīng)該只說明操作的一些前提假設(shè)、算法的內(nèi)部信息等內(nèi)容。
10. 避免對方法進(jìn)行注釋
a)使用充足的外部文檔對API進(jìn)行說明
b)只有對那些其他開發(fā)者的提示信息才有必要放到方法級的注釋中來
11. 除了0和1,絕對不要對數(shù)值進(jìn)行硬編碼,通過聲明一個(gè)常量來代替該數(shù)值
12. 只對那些亙古不變的數(shù)值使用const關(guān)鍵字,例如一周的天數(shù)
13. 避免對只讀(read-only)的變量使用const關(guān)鍵字。
14. 對每一個(gè)假設(shè)進(jìn)行斷言。平均起來,每5行應(yīng)有一個(gè)斷言。
15. 每一行代碼都應(yīng)該以白盒測試的方式進(jìn)行審讀。
16. 只捕捉那些你自己能夠顯示處理的異常
17. 如果在catch語句塊中需要拋出異常,則只拋出該catch所捕捉到的異常(或基于該異常而創(chuàng)建的其他異常),這樣可以維護(hù)原始錯(cuò)誤所在的堆棧位置。
catch(Exception exception)
{
    MessageBox.Show(exception.Message);
    
throw;//或throw exception;

}
18. 避免利用返回值作為函數(shù)的錯(cuò)誤代碼
19. 避免自定義異常類
20. 當(dāng)自定義異常類的時(shí)候
     a)讓你自定義的異常類從Exception類繼承
     b)提供自定義的串行化機(jī)制
21. 避免在一個(gè)程序集中定義多個(gè)Main()方法
22. 只把那些絕對需要的方法定義成public,而其他的方法定義成internal
23. 避免friend assermblies,因?yàn)檫@回增加程序集之間的耦合性
24. 避免讓你的代碼依賴于運(yùn)行在某個(gè)特定地方的程序集
25. 在application assembly中最小化代碼量。使用類庫來包含業(yè)務(wù)邏輯
26. 避免顯示指定枚舉的值
//正確
public enum Color
{
    Red,Green,Blue
}
//錯(cuò)誤

public enum Color
{
    Red
=1,Green=2,Blue=3

}
27. 避免為枚舉指定一個(gè)類型
//避免
public enum Color:long
{
    Red,Green,Blue
}
28. 對于if語句,總使用一對{}把下面的語句塊包含起來,哪怕只有一條語句也是如此
29. 避免使用三元條件操作符
30. 避免利用函數(shù)返回的Boolean值作為條件語句。把返回值賦給一個(gè)局部變量,然后再檢測
31. 總是使用以零為基數(shù)的數(shù)組
32. 總是使用一個(gè)for循環(huán)顯示的初始化一個(gè)引用成員的數(shù)組
33. 使用屬性來替代public或protected類型的成員變量
34. 不要使用繼承下來的new操作符,使用override關(guān)鍵字覆寫new的實(shí)現(xiàn)
35. 在一個(gè)非密封(non-sealed)類中,總是把那些public和protected的方法定義為virtual
36. 除非為了和其他語音進(jìn)行互動,否則絕對不要使用不安全的代碼
37. 避免顯示類型轉(zhuǎn)換。使用as關(guān)鍵字安全的轉(zhuǎn)換到另一個(gè)類型
Dog dog = new GermanShepherd()
GermanShepherd shepherd 
= dog as
 GermanShepherd;
if(shepherd != null
)
{}
38. 在調(diào)用一個(gè)代理前,總是檢查它是否為null
39. 不要提供public的事件成員變量。改用Event Accessor
40. 總是使用接口
41. 接口和類中方法和屬性的比應(yīng)該在2:1左右
42. 避免只有一個(gè)成員的接口
43. 努力保證一個(gè)接口有3~5個(gè)成員
44. 不要讓一個(gè)接口中成員的數(shù)量超過20,而12則是更為實(shí)際的限制。
45. 避免在接口中包含事件
46. 當(dāng)使用抽象類的時(shí)候,提供一個(gè)接口
47. 在類繼承結(jié)構(gòu)中暴露接口
48. 推薦使用顯示接口實(shí)現(xiàn)
49. 從來不要假設(shè)一個(gè)類型支持某個(gè)接口。在使用前總是要詢問一下。
SomeType obj1;
IMyInterface obj2;
//Some code to initialize,then:

obj2 = obj1 as IMyInterface;
if(obj2 != null
)
{
   obj2.Method();
}

else
{
   
//handle error in expected interface

}

50.不要硬編碼向用戶顯示的字符串。要使用資源
51. 不要硬編碼那些可能會隨發(fā)布環(huán)境變化而變化的字符串,例如數(shù)據(jù)庫連接字符串
52. 使用String.Empty取代""
53. 使用一個(gè)長字符串的時(shí)候,使用StringBuilder代替string
54. 避免在結(jié)構(gòu)中提供方法a)參數(shù)化的構(gòu)造函數(shù)是鼓勵(lì)使用的b)可以重載運(yùn)算符
55. 當(dāng)聲明了靜態(tài)成員的時(shí)候,總是要提供一個(gè)靜態(tài)構(gòu)造函數(shù)
56. 當(dāng)早綁定可能的時(shí)候就盡量不要使用遲綁定
57. 讓你的應(yīng)用程序支持跟蹤和日志
58. 除了要在switch語句中實(shí)現(xiàn)代碼跳轉(zhuǎn),不要使用goto關(guān)鍵字
59. 總在switch語句的default情形提供一個(gè)斷言

int number = SomeMethod()
switch
(number)
{
   
case 1
:
        Trace.WriteLine(
"case 1:"
);
        
break
;
   
case 2
:
        Trace.WriteLine(
"case 2:"
);
        
break
;
   
default
:
        Debug.Assert(
false
)
        
break
;
}

60. 除了在一個(gè)構(gòu)造函數(shù)中調(diào)用其他的構(gòu)造函數(shù)之外,不要使用this關(guān)鍵字
61. 不要使用base訪問基類的成員,除非你在調(diào)用一個(gè)基類構(gòu)造函數(shù)的時(shí)候要決議一個(gè)子類的名稱沖突
62. 總是要在unchecked狀態(tài)下運(yùn)行代碼,但是為了防止溢出或下溢操作,要果斷使用checked模式
項(xiàng)目設(shè)置和項(xiàng)目結(jié)構(gòu)
1. 總是在4級警告上建立你的項(xiàng)目
2. 在發(fā)布版中,把警告當(dāng)成錯(cuò)誤來對待
3. 避免關(guān)閉編譯器的某些警告選項(xiàng)
4. 總是要在應(yīng)用程序的配置文件中顯示指定支持的運(yùn)行時(shí)版本
5. 避免顯示進(jìn)行CLR程序集版本的重定向和綁定
6. 避免顯示的預(yù)處理定義(#define)。使用項(xiàng)目設(shè)置來定義條件編譯常量
7. 不要在AssemblyInfo.cs中加入任何邏輯
8. 不要在AssemblyInfo.cs之外的文件中添加程序級屬性。
9. 提供AssemblyInfo.cs中的所有信息,例如公司名、描述和版權(quán)事項(xiàng)等
10. 同一個(gè)解決方案中的程序集引用都應(yīng)該使用相同路徑
11. 禁止在程序集之間使用循環(huán)引用
12. 避免多模塊程序集
13. 避免利用異常窗口削弱異常處理
14. 堅(jiān)持在同一個(gè)解決方案中的所有程序集之間使用統(tǒng)一的版本號
15. 把所有解決方案的信息存放到一個(gè)共享的SolutionInfo.cs文件中
16. 把你的應(yīng)用程序的配置文件命名為App.config,并把它包含在你的項(xiàng)目中
17. 修改Visual Studio 2005 的默認(rèn)項(xiàng)目結(jié)構(gòu)來適應(yīng)你的項(xiàng)目規(guī)劃,并且對項(xiàng)目文件夾和文件使用統(tǒng)一的結(jié)構(gòu)
18. 一個(gè)Release發(fā)布應(yīng)該包含調(diào)試信息
19. 總是對你的程序集進(jìn)行簽名,包括你的客戶應(yīng)用程序


該文章在 2017/2/7 18:53:52 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved