2013-03-29 61 views
0

因此,我正在为一个类的MySQL数据库制作一个客户端程序,并且我在窗体类的顶部声明了一些变量,这些变量在窗体的整个生命周期中使用和重用。每次变量的习惯,我只是做这样的事情:C#中的垃圾收集#

variableName = new VariableClass(); 

,然后用它,主要与数据集/表。我想知道的是,我应该明确释放内存,然后再打电话给新的或C#为我照顾这个吗?

回答

5

没有必要在C#中显式释放.Net对象。它在CLR上运行,这是一个垃圾收集环境,因此这些物品将为您清理。

这就是说......从你的问题来看,你是不是很清楚你是否将这些分配为字段或当地人。如果您在字段中分配它们,并且只在一个函数中使用它们,那么您应该将该声明移至本地。虽然内存不会泄漏,但您将会抓住物体的时间远远超过所需的时间。这不必要地增加了应用程序的内存占用。

+0

使用这些DataSets/Tables的主要方式是从我的数据库中的表中检索名称列表,并使用它们填充下拉菜单,然后在用户选择说的时候构建SQL查询,下拉并希望查看相关的病史或保险信息。编辑:记住,每次我需要它们时检索这些名称会更好,还是只按照我拥有的方式保存它们,然后将它们取回一次并重新使用。 – joshuaegclark

0

它取决于变量的类是什么。如果它使用需要处置的资源,或者它使用非托管资源,则应该实施IDisposable并确保它们被正确处置。如果没有,你可以依靠垃圾收集器来做它的事情。