我的输入被"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();
}
}
}
我不确定是否可以从控制台缓冲区中删除一行。但是,如果您在代码中更改第二个 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);
这一行,似乎您删除了错误的输入行。