.NET Console.ReadLine 測試 Ctrl + c 結束後行為

  • 36
  • 0

根據黑大(黑暗執行緒) 的 FB 貼文,有了以下的測試心得

圖一

見圖一

第一次的 Enter something:直接按Ctrl + C 程式碼繼續跑完
第二次的 Enter something: 按幾個 C 之後,再按Ctrl + C 程式碼繼續跑完(結果跟第一次一樣)

圖二

見圖二

基本上結果一樣,只是記錄一下,程式碼改成主動離開。 

 

題外話,ConsoleCancelEventArgs.Cancel 屬性 可以設定  CTRL+C 之後,要不要停止程式。

Console.CancelKeyPress += new ConsoleCancelEventHandler(myHandler);

Console.WriteLine("Before ReadLine()");

while(true)
{
    Console.Write("Enter something, or press CTRL+C to quit: ");
    string line = Console.ReadLine();
    if (line == null)
    {
        Console.WriteLine("You entered nothing.");
    }
    else
    {
        Console.WriteLine("You entered: " + line);
    }
    Console.WriteLine("After ReadLine(0):" + line);
    Console.WriteLine("After ReadLine(1):" + line);
    Console.WriteLine("After ReadLine(2):" + line);
}


static void myHandler(object sender, ConsoleCancelEventArgs args)
{
    Console.WriteLine("CTRL+C");
    args.Cancel = false; // 預設是 false,該值是 true 的時候 Ctrl + C 該程式不會結束
}

PS 環境 net8.0