【问题标题】:Let User Re-type The Input Without Interfering With Other Strings (C#)让用户在不干扰其他字符串的情况下重新键入输入 (C#)
【发布时间】:2014-12-04 21:13:33
【问题描述】:

我的输入被“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();
        }
    }
}

【问题讨论】:

  • 你是在问你的代码风格吗?
  • byte age1, age2 应该是int || Int32 还请修复格式错误的代码.. 也不要将多行代码放在一行上.. 很难阅读什么你正在尝试做并且很容易在这条线上被查看或错过Console.WriteLine("Age 1-> {0},如果你使用string.Format()方法,我认为它会很干净
  • 没有理由改变字节......字节是0-255,我认为没有多少人能活到那个年龄。
  • 我不确定您是否可以从控制台缓冲区中删除一行。

标签: c# output user-input presentation tryparse


【解决方案1】:

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

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); 这一行,您似乎删除了错误的输入行。

【讨论】:

  • 我很感激,谢谢你的回复。你帮了我。 - 如果您无法理解我的问题或无法阅读我的代码,我深表歉意。有经验的程序员抱怨有点愚蠢,但无论如何。 - 到目前为止,我在学院学习了 1 年的 C#。而且我认为学习这样的演示功能会很方便,其中无效输入被删除并替换为新字符串,而无需清除上面的所有内容。 -> 好奇的话可以看看我做了什么-> pastebin.com/4v58razK
  • @monstrasitix:很高兴我帮助了你。如果可以,请接受我的回答。我在 pastebin 中看到了您的代码。如果您的年龄变量不断增长,您应该将年龄检查和打印封装在一个方法中。让您的代码在出现错误时更易于阅读和遵循。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
相关资源
最近更新 更多