回答
就個人而言,我寧願在using
聲明中看到不使用IDisposable
實現。
所以,如果你有這樣的代碼:
var fs = new FileStream(...);
// Other code.
fs.Dispose();
它會告訴你在一個using
語句中使用它。
好處是,它會提醒您,您可能不知道應該處理的物品沒有及時處理的情況。
但是,有足夠的時間在有效的情況下,不要在using語句中聲明IDisposable
實現,因爲這樣的規則很快就會變成一種痛苦。大多數情況下,這種情況下將一個IDisposable
實現作爲方法的參數。
我做什麼不的意思是哪裏的實施細則刪除需要調用Dispose
類,(例如MemoryStream
或DataContext
)用途;那些實施IDisposable
和應該始終有Dispose
調用他們,無論執行細節,因爲它總是更好的代碼違反合同暴露。
@ Ian Ringrose:更新我的回覆以澄清。 – casperOne
VS2010代碼分析有一個非破壞規則:http://msdn.microsoft.com/en-us/library/ms182289%28VS.100%29.aspx –
我想快速定義和實施我自己的規則。我曾經爲FxCop嘗試過一次,但是我發現這個API不太清楚 - 並且沒有太多的文檔。我用的FxCop 1.36,也許事情發生了變化......
所以我希望看到有一個清晰和易於FxCop的使用界面...這將是巨大的:)
我試圖執行的規則分別爲:
- DocumentInternalMethods
- DocumentInternalTypes
- ...
巴斯我想對非公開成員執行xml註釋。
爲此使用StyleCop,它對該內建有一個規則。無論如何,XML註釋都不會被編譯到程序集中,所以FXCop無法看到這些是否被定義,因爲它只分析編譯後的程序集。 –
我對StyleCop有所瞭解,但是現在我想在FxCop中實現它 - 我做到了。你是對的,你必須單獨加載xml文件。 – tanascius
我真的很喜歡二進制分析足夠聰明,以識別接口的可能性。
如果可以通過接近定義的類型及其成員來確定是否存在可以插入接口的公共元素。
顯然,這不應該只是一個警告,因爲它有時希望明確不使用接口。
想到這一點,我也希望看到二進制分析足夠聰明,以檢查可能的訪問修飾符的降級。
不應該很難確定一個類,屬性或方法是否會受到更多限制。
- 1. 深刻的理解:爲什麼.bind(這一點)似乎並沒有遵循正常規則,新希望
- 2. IDLE Python希望googletagmanager.com爲什麼?
- 3. htaccess的重寫規則不工作,我希望
- 4. 驗證規則和業務規則有什麼區別?
- 5. 展望的腳本規則
- 6. 這個mod_rewrite規則有什麼問題?
- 7. 這個htaccess規則有什麼問題?
- 8. .htaccess:這條規則有什麼問題?
- 9. Drools規則有什麼問題?
- 10. 以下htaccess規則有什麼問題
- 11. 剃刀願望清單 - 您希望實施什麼?
- 12. 你用什麼規則來劃定MVP方法和成員
- 13. 爲什麼不這樣做的代碼什麼我希望
- 14. .c源文件消失了,有什麼希望?
- 15. 什麼是輸入規則?
- 16. 什麼是80列規則?
- 17. 什麼是「級聯規則」?
- 18. Firebase規則:什麼是.contains()?
- 19. 這是什麼CSS規則?
- 20. 規格尺寸的規則是什麼?
- 21. 你能看到這個apache2重寫規則有什麼問題嗎?
- 22. 沒有對象,當你不希望它的聯繫form_for
- 23. 是否有任何理由說明你爲什麼都希望在有人提交代碼時進行通知?
- 24. 你對這個C++表達式有什麼期望?
- 25. FLEX/BISON:爲什麼我的規則沒有被重新規範?
- 26. Java規範 - 什麼是「有效」優化的規則
- 27. 希望建立一個基於Web的聊天。有什麼建議麼?
- 28. 爲什麼規則2的規則1後果影響行爲?
- 29. 爲什麼不使用規則引擎?或規則引擎
- 30. '適用(規則)'或'證明'使用什麼規則?
FXCop不執行靜態代碼檢查,它檢查編譯程序集(IL)。 靜態代碼分析通過StyleCop完成。 –
@BeowulfOF,我會說FXCop做了靜態代碼檢查,它只是不檢查你在「=」的每一邊有多少空格。 id不跟蹤方法之間的控制流程等。 –
Microsoft聲明只有程序集是由FXCop分析的,而不是源代碼。 http://msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx –