我在我的项目上运行完整的代码分析,它说它有500个问题。我已经把它煮成了300个,但我正在为一个我似乎无法找到解决方案的问题而苦苦挣扎。在这种情况下解析代码分析“CA2000”规则?
规则CA2000状态:
如果一次性对象不明确的所有引用之前,它是超出范围设置,对象会在某个不确定的时间被设置在垃圾收集器运行的终结物体。由于可能发生的异常事件会阻止对象的终结器运行,因此应该明确处理该对象。
有关规则的更多信息,请参见上面链接的页面。
该规则失败上的代码是这样的:
internal Window(Game game, Control parent, string title, bool visible)
: base(game, parent, visible, new ScreenspaceRectangle(game, Color.Black, Vector.Zero, Vector.Zero))
{
}
和描述是:
CA2000:Microsoft.Reliability:在方法“Window.Window(游戏,控制字符串,布尔)',调用System.IDisposable.Dispose对象'新的ScreenspaceRectangle(游戏,Color.Black,Vector.Zero,Vector.Zero)'之前,所有引用超出范围。
我知道这个问题可以通过在创建对象周围使用“using”声明来正常解决,以确保它始终正确处置。但是在这种情况下我怎么解决它?
为什么ScreenspaceRectangle需要放置? – 2011-07-31 06:52:55