做什么。这是我刚刚继承的Asp.Net v2类。班级工作正常 这是一个默认的构造函数 在它下面是~VNC用于什么?
using System;
using System.Web;
using System.Data;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.SqlClient;
using System.Configuration;
namespace UtopianClasses
{
public class VNC
{
public VNC(){ }
~VNC() {
GC.Collect();
}
public String VNCViewFilesLocationMCR
{
get {
return ConfigurationManager.AppSettings["VNCViewFilesLocation"].ToString();
}
......其他课程
答案 0 :(得分:3)
如前所述,它是一个析构函数。但是,您不仅可能不是显式实现析构函数,而且真的不应该在析构函数内部强制执行GC集合,因为析构函数是由垃圾收集器本身调用的。就像我所知,这是任何GC语言中的代码味道。
答案 1 :(得分:1)
这是destructor,而不是构造函数。它们通常用于在包装本机API的类中释放本机资源或句柄。
话虽如此,添加一个调用GC.Collect()
的构造函数是个坏主意。析构函数仅在最终化期间调用,因此垃圾收集器已经清理此对象以及此对象引用的任何对象。没有理由这样做,因为它只会增加开销,实际上会减慢系统速度。
这可能是由具有C ++背景的人编写的,他不了解.NET中内存管理的复杂性。我建议完全删除它。
答案 2 :(得分:0)
他们实际上在.net中被称为终结者。当GC清理该对象时,它们会被调用。
http://msdn.microsoft.com/en-us/library/system.object.finalize(VS.71).aspx