使用"如果"在C#中提供自定义错误消息

时间:2014-06-07 05:37:53

标签: c# visual-studio-2013

我刚刚开始学习如何使用c#编程 我在2013年的视觉工作室使用,我不知道c#的版本

这里我有一个代码来绘制命令应用程序的背景

        for (; ; )
        {
            Console.WriteLine("Give a number to select a colour between 0-15? ");
            ConsoleColor renk;
            renk = (ConsoleColor)Convert.ToInt32(Console.ReadLine());




            Console.BackgroundColor = renk;
            Console.Clear();
        }

问题是,当用户提供任何颜色时,它会绘制背景,并循环到开头,因此用户可以键入新的(数字)

BUT

当用户不输入数字并按回车键时,它只会出错并崩溃。 当用户没有给出数字时,如何显示消息并将其循环到开头?

我试过了;

               if(renk)
            {

                Console.WriteLine("My error message!");

            }

但我不知道如何定义“if”renk“未定义” 就像,如果我在“renk”是< renk“时尝试使用此代码。五 然后我会写;

         if(renk<5)
            {

                Console.WriteLine("My error message!");

            }


       else
            {

                bla bla bla

            }

2 个答案:

答案 0 :(得分:4)

使用int.TryParse检查字符串编号输入 只有在输入数字时才会输入“if”(并且你将在num var中输入数字)。

for (; ; )
{
       Console.WriteLine("Give a number to select a colour between 0-15? ");
       ConsoleColor renk;
       int num;
       string strNum = Console.ReadLine();
       if(int.TryParse(strNum, out num) && (num >= 0 && num <= 15))
       {
            Console.BackgroundColor = (ConsoleColor)num;
            Console.Clear();
       }
       else
       {
             Console.WriteLine("Error");
       }  
}

答案 1 :(得分:0)

int inputNumber = 0;
for (; ; )
{
    Console.WriteLine("Give a number to select a colour between 0-15? ");
    ConsoleColor renk;

    if(int.TryParse(Console.ReadLine(),out inputNumber) && (inputNumber>=0 && inputNumber<=15))
    {
        renk = (ConsoleColor)Convert.ToInt32(inputNumber);
        Console.BackgroundColor = renk;
        Console.Clear();
    }
    else
    {
        Console.WriteLine("No Input Received! Quitting!");
        break;
    }
}