Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在catch中使用变量输入?_C# - Fatal编程技术网

C# 如何在catch中使用变量输入?

C# 如何在catch中使用变量输入?,c#,C#,我想在catch语句中使用ReadLine()方法输入,但出现“使用未分配的局部变量”错误。我怎样才能解决这个问题 char entry; try { Write("Please type a char variable value >> "); entry = Convert.ToChar(ReadLine()); } //how do I make the incorrect input entered

我想在catch语句中使用ReadLine()方法输入,但出现“使用未分配的局部变量”错误。我怎样才能解决这个问题

    char entry;
    try
    {   
        Write("Please type a char variable value >> ");
        entry = Convert.ToChar(ReadLine());
    }
    //how do I make the incorrect input entered for the entry variable display in the catch
    catch
    {  
        Console.WriteLine("{0} is not an acceptable char variable value" , entry);
    }   

如果
Convert.ToChar
引发异常,则函数的返回值为“未定义”,因为输入字符串不是有效的
char
,因此无法将其存储在
char
变量中

Console.Write(“请键入char变量值>>”;
字符串输入=Console.ReadLine();
尝试
{
char条目=Convert.ToChar(输入);
}
抓住
{
WriteLine(“{0}不是可接受的字符变量值”,输入);
}

--由于该行在赋值变量之前抛出,根据定义它是未赋值的,因此您不能使用它。想象一下,如果
Write
方法在赋值
条目之前失败,会发生什么情况。catch处理程序会做什么?错误消息会准确地告诉您问题所在。您试图使用的变量不能保证赋值。事实上,进入
catch
的唯一方法实际上是不分配变量。您需要花更多的时间来考虑代码中步骤的逻辑顺序,尤其是重新考虑当转换为
char
值失败时,您实际希望向用户显示的数据。