我可能被贴上了OCD,“烦恼”甚至是“怪异”的标签,但我讨厌重载的类。我最近一直在尝试编写一种在控制台退出之前执行代码的方法,但是我成功了。
唯一的问题是,该解决方案需要20多行代码。 C#应该已经实现了IMO。我对此很陌生,这是我的第一次尝试,有没有更简单的方法?
这只会使我的程序显得肿,并认为必须有一种更简单的方法,不需要花很多精力,包括重要的DLL等等。
我已经查找过,但是每次搜索时,都会出现当前的解决方案。
static class Program
{
private delegate bool ConsoleEventDelegate(int eventType);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool SetConsoleCtrlHandler(ConsoleEventDelegate callback, bool add);
public static void Main(string[] args)
{
SetConsoleCtrlHandler(ConsoleEventCallback, true);
Console.ReadKey(true);
}
private static bool ConsoleEventCallback(int eventType)
{
if (eventType == 2)
{
Dispose();
}
return false;
}
public static void Dispose()
{
// code before exit goes here.
}
}