在控制台退出之前执行代码的最佳实践?

时间:2018-08-10 02:15:38

标签: c# .net

我可能被贴上了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.
    }
}

0 个答案:

没有答案