允许用户在不干扰其他字符串 (C#) 的情况下重新键入输入

本文关键字:情况下 输入 新键入 字符串 干扰 许用户 用户 其他 | 更新日期: 2023-09-27 18:33:14

我的输入被"TryParse"检查。如果它是假的,我想让用户正确重新输入它。但是当我在检查后单击任何键时,它会删除"Console.Clear();"上述所有原因。- 我只想删除输入部分,而不想删除上面的任何内容。

namespace Practice
{
    class Program
    {
        static void Main(string[] args)     // Main Method
        {
            byte age1, age2;
            string input;
            do
            {
                Console.Write("Enter Age 1: "); input = Console.ReadLine();
                if (!byte.TryParse(input, out age1)) Error();
            } while (!byte.TryParse(input, out age1));
            do
            {
                Console.Write("Enter Age 2: "); input = Console.ReadLine();
                if (!byte.TryParse(input, out age1)) Error();
            } while (!byte.TryParse(input, out age2));
        }
        static void Error()
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("Invalid Input...");
            Console.ResetColor();
            Console.ReadKey();
            Console.Clear();
        }
    }
}

允许用户在不干扰其他字符串 (C#) 的情况下重新键入输入

我不确定是否可以从控制台缓冲区中删除一行。但是,如果您在代码中更改第二个 while,则可以模拟它:

while (!byte.TryParse(input, out age2) && counter) { Error(); Console.WriteLine("Enter Age 1: {0}",age1); Console.Write("Enter Age 2: "); input = Console.ReadLine(); } // Check And Error Output

Console.Clear();执行后Console.WriteLine("Enter Age 1: {0}",age1);这一行,似乎您删除了错误的输入行。

相关文章: