返回首页

嗨,看看下面的代码

char c = 'a';

a=Convert.ToInt32(c);

Console.WriteLine("hi" + a);//displays output:- Hi97

a=Convert.ToInt32(Console.ReadLine());//Gives complie time error(throws an exception) if I enter 'a'(a only without quotes) on screen.
为什么Convert.ToInt32()的行为在2的情况不同。

回答

评论会员:游客 时间:2012/02/07
米卡Wendelius:在第一种情况下,你已经定义了一个单一的字符添加到字符串转换为ASCII值(97)当您使用Console.ReadLine()方法,该方法不会返回一个字符,但字符串。所以这个字符串不能转换为整数,如果它包含的字符。理查德MacCutchan
。见的此的其他情形,而]
评论会员:爱德华・卢 时间:2012/02/07
因为相当于"1"的ASCII字符集是97 。使用Int32.TryParse方法在这种情况下,会更好。见,仅供参考链接:
{A}

的问候,
爱德华