我有一个控制台应用程序(.NET Framework 4.5.2):
class Program
{
static void Main(string[] args)
{
using (var result = new Result())
{
result.Test();
}
}
}
public class Result : IDisposable
{
public void Test()
{
int a = 1;
int b = 1 / (a - 1);
}
public void Dispose()
{
Console.WriteLine("Dispose");
}
}
为什么Dispose
方法没有被调用?在DivideByZero
异常之后,断点没有被命中,并且控制台没有输出(因为应用程序已经退出)。
using
语句中,因此人们可能期望该对象在语句结束时被处理。 - Timothy Groote