我已经自己学习了几个星期的c#。 事情对我来说是新的,因为我不熟悉如何编写高效程序的语法和技术。
今天我想知道一个好的程序员如何处理用户输入错误。 我的意思是,当我要求用户输入他们的名字时,
Console.Write("请输入你的名字"(;
并且用户输入数字,程序将运行到错误。 我正在做的是我使用字符串变量。
字符串输入;
但它显示所有内容,甚至是一个不是名称的数值。
我该如何处理这种错误? 如何捕获用户输入? 如何允许用户只输入我想要的值?
*这是我第一次使用堆栈溢出,谢谢你让我在这里
你可以试试这个:
class Program
{
static void Main()
{
string strName;
do
{
Console.WriteLine("What is your name, please?");
strName = Console.ReadLine();
foreach ( char c in strName )
if ( !char.IsLetter(c) )
{
Console.WriteLine();
Console.WriteLine("Your name can only contains letters.");
Console.WriteLine();
strName = null;
break;
}
}
while ( strName == null );
Console.WriteLine();
Console.WriteLine("Your name is: " + strName);
Console.WriteLine();
Console.WriteLine("Press a key to exit.");
Console.ReadKey();
}
}
如果名称可以有空格或任何键(如"-"(,则测试条件如下:
if ( !char.IsLetter(c) && c!= ' ')
一种高级解决方案是使用 while ReadKey(( 并捕获所有键来编辑和拒绝不是字母的字符,因此用户只能使用字母键。它需要管理箭头、del、退格键、主页、结束、进入、转义等键......并根据所需的 UX 重新发送到控制台。