亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c# readline怎樣實現輸入歷史記錄功能

c#
小樊
85
2024-06-24 11:09:30
欄目: 編程語言

要實現輸入歷史記錄功能,可以通過保存用戶輸入的歷史記錄并在用戶按鍵盤向上或向下箭頭鍵時顯示相應的歷史記錄。以下是一個簡單的示例代碼:

using System;
using System.Collections.Generic;

class Program
{
    static List<string> history = new List<string>();
    static int currentIndex = -1;

    static void Main()
    {
        string input;

        do
        {
            Console.Write("Enter a command: ");
            input = ReadLineWithHistory();

            if (!string.IsNullOrEmpty(input))
            {
                history.Add(input);

                // 處理用戶輸入的命令

            }

        } while (input != "exit");
    }

    static string ReadLineWithHistory()
    {
        ConsoleKeyInfo key;
        string input = "";
        
        do
        {
            key = Console.ReadKey(true);

            if (key.Key == ConsoleKey.Backspace)
            {
                if (input.Length > 0)
                {
                    input = input.Remove(input.Length - 1);
                    Console.Write("\b \b");
                }
            }
            else if (key.Key == ConsoleKey.Enter)
            {
                Console.WriteLine();
                return input;
            }
            else if (key.Key == ConsoleKey.UpArrow)
            {
                currentIndex = Math.Max(0, currentIndex - 1);
                if (currentIndex >= 0 && currentIndex < history.Count)
                {
                    input = history[currentIndex];
                    Console.Write("\r" + new string(' ', Console.WindowWidth) + "\r");
                    Console.Write(input);
                }
            }
            else if (key.Key == ConsoleKey.DownArrow)
            {
                currentIndex = Math.Min(history.Count - 1, currentIndex + 1);
                if (currentIndex >= 0 && currentIndex < history.Count)
                {
                    input = history[currentIndex];
                    Console.Write("\r" + new string(' ', Console.WindowWidth) + "\r");
                    Console.Write(input);
                }
            }
            else
            {
                input += key.KeyChar;
                Console.Write(key.KeyChar);
            }

        } while (true);
    }
}

在這個示例代碼中,我們通過使用ConsoleKey.UpArrowConsoleKey.DownArrow來實現向上和向下箭頭鍵瀏覽歷史記錄,同時也實現了Backspace鍵刪除字符的功能。歷史記錄保存在history列表中,currentIndex用于記錄當前瀏覽到的歷史記錄的索引。當用戶按Enter鍵時,返回輸入的命令。

請注意,這只是一個簡單的實現,您可能需要根據自己的需求進行修改和擴展。

0
洞口县| 乳山市| 扶沟县| 西盟| 乌恰县| 彰化市| 阿勒泰市| 洪湖市| 辽中县| 金昌市| 北京市| 项城市| 荔浦县| 满城县| 伊金霍洛旗| 湘阴县| 江北区| 米脂县| 徐水县| 怀来县| 定州市| 辽源市| 满洲里市| 长岛县| 肥东县| 仙游县| 安图县| 龙井市| 永嘉县| 探索| 桑日县| 榕江县| 安阳市| 昌江| 始兴县| 虞城县| 土默特右旗| 科尔| 嘉祥县| 房产| 山阳县|