C# C语言中的垃圾收集#

C# C语言中的垃圾收集#,c#,memory-management,C#,Memory Management,因此,我正在为一个类的MySQL数据库制作一个客户端程序,我在表单类的顶部声明了几个变量,在表单的整个生命周期中使用和重用这些变量。每次使用变量时,我只是做一些类似的事情: variableName = new VariableClass(); 然后使用它,主要是数据集/表。我想知道的是,我应该在再次调用new之前显式释放内存,还是C#会帮我解决这个问题?没有必要显式释放C#中的.Net对象。它在CLR上运行,CLR是一个垃圾收集环境,因此将为您清理项目 话虽如此。。。从您的问题中不清楚您是将

因此,我正在为一个类的MySQL数据库制作一个客户端程序,我在表单类的顶部声明了几个变量,在表单的整个生命周期中使用和重用这些变量。每次使用变量时,我只是做一些类似的事情:

variableName = new VariableClass();

然后使用它,主要是数据集/表。我想知道的是,我应该在再次调用new之前显式释放内存,还是C#会帮我解决这个问题?

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


话虽如此。。。从您的问题中不清楚您是将其分配为字段还是本地。如果在字段中分配它们,并且只在一个函数中使用它们,那么应该将该声明移动到本地。虽然内存不会泄漏,但您将在对象上保留的时间远远超过所需的时间。这不必要地增加了应用程序的内存占用

无需显式释放C#中的.Net对象。它在CLR上运行,CLR是一个垃圾收集环境,因此将为您清理项目


话虽如此。。。从您的问题中不清楚您是将其分配为字段还是本地。如果在字段中分配它们,并且只在一个函数中使用它们,那么应该将该声明移动到本地。虽然内存不会泄漏,但您将在对象上保留的时间远远超过所需的时间。这不必要地增加了应用程序的内存占用

这取决于变量类的作用。如果它使用需要处置的资源或使用非托管资源,则应实现IDisposable并确保正确处置这些资源。如果没有,您可以依赖垃圾收集器来完成它的工作。

这取决于变量类的作用。如果它使用需要处置的资源或使用非托管资源,则应实现IDisposable并确保正确处置这些资源。如果没有,您可以依靠垃圾收集器来完成它的工作。

使用这些数据集/表的主要方式是从数据库中的表中检索名称列表,并使用它们填充下拉菜单,然后在用户选择时生成SQL查询,例如,下拉列表中的患者姓名,希望查看相关的病史或保险信息。编辑:考虑到这一点,在每次需要时检索这些名称是更好的做法,还是保持现有的方式,而我只需检索一次并重新使用它们。这些数据集/表的主要使用方式是从数据库中的表中检索名称列表,并使用它们填充下拉菜单,然后,当用户从下拉列表中选择患者姓名并希望查看相关的病史或保险信息时,构建SQL查询。编辑:考虑到这一点,在我每次需要这些名字的时候检索它们是更好的,还是只保留我现有的方式,而我只提取一次,然后继续。