我刚刚开始学习如何使用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
}
答案 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;
}
}