回答
就个人而言,我宁愿在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. htaccess的重写规则不工作,我希望
- 3. IDLE Python希望googletagmanager.com为什么?
- 4. 验证规则和业务规则有什么区别?
- 5. 重写规则和重定向规则有什么区别?
- 6. 展望的脚本规则
- 7. 以下htaccess规则有什么问题
- 8. .htaccess:这条规则有什么问题?
- 9. 这个mod_rewrite规则有什么问题?
- 10. 这个htaccess规则有什么问题?
- 11. 剃刀愿望清单 - 您希望实施什么?
- 12. 你用什么规则来划定MVP方法和成员
- 13. 为什么不这样做的代码什么我希望
- 14. .c源文件消失了,有什么希望?
- 15. 这是什么CSS规则?
- 16. 什么是80列规则?
- 17. Firebase规则:什么是.contains()?
- 18. 什么是输入规则?
- 19. 什么是“级联规则”?
- 20. 规格尺寸的规则是什么?
- 21. 你能看到这个apache2重写规则有什么问题吗?
- 22. 是否有任何理由说明你为什么都希望在有人提交代码时进行通知?
- 23. 你对这个C++表达式有什么期望?
- 24. FLEX/BISON:为什么我的规则没有被重新规范?
- 25. Java规范 - 什么是“有效”优化的规则
- 26. 为2条规则使用.htaccess时出现不希望的结果
- 27. 阿帕奇重写规则不希望适用于不同的目录
- 28. 单元测试2010年自定义代码分析规则 - 任何希望
- 29. 希望建立一个基于Web的聊天。有什么建议么?
- 30. 为什么不使用规则引擎?或规则引擎
FXCop不执行静态代码检查,它检查编译程序集(IL)。 静态代码分析通过StyleCop完成。 –
@BeowulfOF,我会说FXCop做了静态代码检查,它只是不检查你在“=”的每一边有多少空格。 id不跟踪方法之间的控制流程等。 –
Microsoft声明只有程序集是由FXCop分析的,而不是源代码。 http://msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx –