我正在努力确保通过实施IDisposable
来解决我的课程问题。但是我发现如果我通过按X关闭控制台,则不会调用dispose方法。如何确保在此实例中调用它?
using System;
using System.IO;
namespace Testing
{
public class Disposable : IDisposable
{
private StreamWriter output = File.CreateText(@"test.txt");
public Disposable()
{
output.WriteLine("Created!");
}
public void Dispose()
{
output.WriteLine("Disposed!");
output.Dispose();
}
}
static class Program
{
static void Main(string[] args)
{
using (new Disposable())
{
Console.ReadLine();
}
}
}
}
您可以使用上述方法测试此行为。如果您执行程序并按任意键,程序将正常终止,文件将包含:
Created!
Disposed!
但是,如果执行程序并通过按X关闭控制台,则文件将为空,因为流不会被处理和/或刷新。