一次性类

yon*_*236 2 c# .net-2.0

请考虑以下课程:

public class Level : IDisposable
{
   public Level() { }

   public void Dispose() { }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我调用该Dispose方法,该类实际将被处理(垃圾收集)?

例如:

Level level = new Level();
level.Dispose();
Run Code Online (Sandbox Code Playgroud)

谢谢.

Dar*_*rov 9

我的问题是,如果我调用Dispose方法,该类实际上会被处理掉吗?

如果处置你的意思是垃圾收集,那么不,这不会发生.调用Dispose方法时会发生什么,调用Dispose方法并执行其正文.

此外,建议将一次性资源包装在using语句中,以确保即使在发生异常时也始终会调用Dispose方法.因此,您可以:而不是手动调用它:

using (Level level = new Level())
{
    // ... do something with the level
}
Run Code Online (Sandbox Code Playgroud)

通常,当对象持有指向某些非托管资源的指针并提供确定性释放这些资源的机制时,将使用Dispose方法.