首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

重发请教:为什么会这样呢?多谢

2012-02-01 
重发请问:为什么会这样呢?谢谢~do{Console.WriteLine( Selectadirection(between1and4): )myDirection

重发请问:为什么会这样呢?谢谢~
do
{
        Console.WriteLine( "Select   a   direction(between   1   and   4): ");
        myDirection   =   Convert.ToInt32(Console.ReadLine());
        //string-> int32,为什么输入a出错,而按f6仅仅是重新输入呢?
  }
        while   ((myDirection   <   1)   ||   (myDirection   >   4));

不太明白,请指点,谢谢!


[解决办法]
myDirection = Convert.ToInt32(Console.ReadLine().Trim());
该句负责读取用户输入数据,这里只能输入数字。如果输入字符例如:a,在Convert.ToInt32会产生异常,他只负责将字符串解析为数值,即“65” --> 65

[解决办法]
看这页Exception部分为什么会出错
http://msdn2.microsoft.com/en-us/library/sf1aw27b(VS.90).aspx
执行ToInt32( "a ")会抛出异常
Console.ReadLine())对于F6得到null
而ToInt32(null)返回0

热点排行