2013-05-15 90 views
1

我用ToolStripMenuItem里面我的一些项目,并使用C#操作new它分配:ToolStripMenuItem是否有任何底层的非托管资源?

ToolStripMenuItem someMenuItem = new ToolStripMenuItem("Some Item"); 

我对IDisposable接口和using声明(http://msdn.microsoft.com/en-us/library/yh598w02.aspx)阅读MSDN文档。我还不清楚ToolStripMenuItem是否有任何潜在的非托管资源。

更确切地说,如果发生某种异常,我应该照顾拨打Dispose(false)方法吗?

回答

0

ToolStripMenuItems从组件,它确实实现了IDisposable接口继承。

对ToolStripMenuItem使用using()语法并不会真正起作用,因为您通常希望菜单项存在供最终用户与其交互,并且语法会立即处理它。

我不清楚什么“某种异常”与处理ToolStrip项目有关。您不必担心处理它,因为托管表单关闭时会收集垃圾。

请记住,从项目集合中删除ToolStripMenuItem不会处理它,在这种情况下,您会想要自己调用dispose方法。

+0

感谢您的回答。关于例外,我的意思是[这里]描述的问题(http://cwe.mitre.org/data/definitions/404.html)。据我从C#样品理解如果ToolStripMenuItem'分配之后'一些功能导致异常,对象超出的无适当释放范围(来电'的Dispose()')。 – VirtualVDX

+0

@VirtualVDX该网站是在谈论非托管资源,如数据库连接,在这种情况下,就变得至关重要处置该对象的,否则你将有可能出现内存泄漏。您不必担心ToolStripMenuItem。你可以看一下源代码[这里](http://www.dotnetframework.org/Search.aspx),搜索ToolStripMenuItem等 – LarsTech

+0

谢谢!我现在知道了。 – VirtualVDX

相关问题