六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

C#編碼應(yīng)注意的事項(xiàng)清單

[摘要]這是從WebBlog@Asp.Net上摘下來(lái)的一片文章,原文在那我已經(jīng)記不清了,大概是最近十來(lái)天的文章吧,讀了以后,感覺(jué)不錯(cuò),不過(guò)其中有些地方,我讀了以后,糊里糊涂的就過(guò)去了,自己也搞不清其中的含義,不過(guò),我倒是把文章翻譯出來(lái)了,現(xiàn)在這兒放著,以后有機(jī)會(huì)再該。內(nèi)容如下:我現(xiàn)在的客戶端廣泛的使用PS...
這是從WebBlog@Asp.Net上摘下來(lái)的一片文章,原文在那我已經(jīng)記不清了,大概是最近十來(lái)天的文章吧,讀了以后,感覺(jué)不錯(cuò),不過(guò)其中有些地方,我讀了以后,糊里糊涂的就過(guò)去了,自己也搞不清其中的含義,不過(guò),我倒是把文章翻譯出來(lái)了,現(xiàn)在這兒放著,以后有機(jī)會(huì)再該。內(nèi)容如下:

我現(xiàn)在的客戶端廣泛的使用PSP(注:程序段前綴),所以我回顧了用在我們項(xiàng)目中的c#代碼,并歸納出一個(gè)清單。非常感激你能對(duì)此做出評(píng)論

1. 是否使用異常來(lái)顯示錯(cuò)誤而不是返回狀態(tài)或錯(cuò)誤代碼?

2. 所有的類和公共方法是否使用.NET樣式的注釋?注意,<summary>注釋應(yīng)該論述公共方法是什么。對(duì)于怎么使用則應(yīng)該放在<remarks>塊中或是內(nèi)嵌于正被討論的代碼中

3. 如果方法的參數(shù)不正確,是否使用一個(gè)異常來(lái)進(jìn)行確認(rèn)和拒絕?

4. Debug.Asserts是否被用來(lái)驗(yàn)證關(guān)于代碼功能的假定?注釋例如:"j will be positive"應(yīng)該被作為斷言(Asserts)重寫

5. 那些不應(yīng)該被初始化的類是否有一個(gè)私有的構(gòu)造函數(shù)?

6. 那些被聲明為值類型并極少使用為方法參數(shù)的類是否從方法中返回或是存放在集合(Collections)中?

7. 那些被只應(yīng)用在一個(gè)程序集中的類是否被標(biāo)記為internal?

8. 那些能被多線程訪問(wèn)的單態(tài)類(Singletons)是否能夠被正確地初始化?參考 the Enterprise Solution Patterns book, p. 263.

9. 必須被繼承類重載的方法是否被標(biāo)記為abstract?

10. 不應(yīng)該被重載的類是否標(biāo)記為sealed?

11. “as” 是否可能被不正確的使用?

12. 是否類重載 ToString 而不是定義另外一個(gè)方法來(lái)輸出對(duì)象的狀態(tài)?

13. 是否一個(gè)長(zhǎng)的信息被發(fā)送到日志組件而不是控制臺(tái)?

14. 一個(gè)finally程序塊是否緊隨一個(gè)try構(gòu)造以用作必須執(zhí)行的代碼?

15. 相對(duì)于for(int i…..)構(gòu)造,是否更傾向于使用foreach?

16. 是否使用屬性而不是實(shí)現(xiàn)getter和setter方法?

17. 相對(duì)于沒(méi)有賦值器的屬性,是否更傾向于使用只讀變量?

18. 被繼承類重載的所有方法是否使用了override關(guān)鍵字?

19. 是否傾向于使用接口類而不是抽象類?

20. 是否寫代碼基于接口而不是一個(gè)實(shí)現(xiàn)類?

21. 那些資源消耗大的對(duì)象是否實(shí)現(xiàn)了IDisposable接口?

22. 那些實(shí)現(xiàn)了IDisposable的對(duì)象是否在使用的時(shí)候才初始化?

23. 相對(duì)于Monitor Enter 構(gòu)造,是否更傾向于使用lock關(guān)鍵字?

24. 是否線程被事件或Pulse構(gòu)造從等待狀態(tài)激活,而不是調(diào)用Sleep()等方式“積極”的等待?

25. 如果重載equals,是否正確地實(shí)現(xiàn)了這一方法?重載equals的規(guī)則是復(fù)雜的,細(xì)節(jié)請(qǐng)參見(jiàn)Richter p153-160

26. 如果== 和!=被重載,由此他們重定向到了Equals?

27. 是否提供了Equals的那些對(duì)象也提供了GetHashCode的重載版本?GetHashCode提供了和Equals相同的語(yǔ)義。注意:GetHashCode的重載應(yīng)該利用對(duì)象的成員變量并且必須返回一個(gè)不再更改的哈希碼。

28. 是否所有的異常類有一個(gè)構(gòu)造函數(shù)帶有一個(gè)字符參數(shù),另外一個(gè)構(gòu)造函數(shù)帶有一個(gè)字符參數(shù)和一個(gè)異常參數(shù)?

29. 是否所有的異常類繼承與基本的Matrix異常并正確地適合異常的層次?

30. 是否那些將要被封送或遠(yuǎn)程調(diào)用的類使用了Serializable屬性?

31. 是否那些使用了Serializable屬性的類,包括Exception和EventArgsl類型的類,有一個(gè)默認(rèn)的構(gòu)造函數(shù)?

32. 那些實(shí)現(xiàn)了ISerializable的類是否即提供了必須的GetObjectData重載也提供了帶有一個(gè)SerializeInfo和一個(gè)StreamingContext參數(shù)的構(gòu)造函數(shù)?

33. 在作浮點(diǎn)值運(yùn)算的時(shí)候,是否所有的常量加倍而不是整數(shù)?

34. 是否所有的代理有一個(gè)void返回類型并且避免使用out或ref參數(shù)?

35. 是否繼承于EventArgs的類中的所有成員都是只讀?這將阻止一個(gè)預(yù)訂者更改這個(gè)EventArgs以免影響另一個(gè)預(yù)訂者。

36. 代理是否被發(fā)布為事件?這將阻止預(yù)訂者引發(fā)事件。詳細(xì)請(qǐng)參見(jiàn)Lowy, p. 102

37. 通常的安裝和卸載nUnit代碼是否孤立于那些標(biāo)記了合適屬性的安裝和卸載方法?

38. 消極的單元測(cè)試是否使用ExpectedExceptin屬性去顯示一定會(huì)拋出某一個(gè)異常




參考:

Juval Lowy, "Programming .NET Components"

Jeffrey Richter, "Applied Microsoft .NET Framework Programming"

"Enterprise Solution Patterns using Microsoft .NET" - available in published form or as a free pdf


主站蜘蛛池模板: 欧美在线视频网 | 在线天堂中文新版www | 欧美一区二区免费 | 无遮挡毛片a级武则天 | 视频二区 素人 欧美 日韩 | 日本视频在线免费看 | 天天操天天射天天色 | 午夜精品久久久久 | 影音先锋色图 | 色妹子影院 | 欧美一级h | 中文字幕乱码一二三四区 | 四虎 2022 永久网站 | 亚洲精品青青草原avav久久qv | 亚洲永久在线 | 日韩精品影院 | 欧美视频免费在线播放 | 青青草视频在线观看免费 | 字幕网资源站中文字幕 | 日韩第一页在线 | 亚洲视频黄色 | 欧美午夜影院 | 青娱乐国产在线观看 | 亚洲图区欧美 | 日本七大伦理经典在线观看 | 色综合久久综合欧美综合网 | 小明永久成人一区二区 | 四虎免费在线 | 色在线导航 | 欧美特黄a级高清免费大片 欧美桃色视频 | 青青国产成人久久91网 | 骚妇毛片| 日日摸日日碰夜夜爽97纠 | 欧美视频日韩专区午夜 | 一区精品麻豆入口 | 日本高清一本视频 | 四虎成人影院 | 五月婷婷丁香在线 | 天天综合网色中文字幕 | 视频二区 调教中字 知名国产 | 在线亚洲精品中文字幕美乳 |