老师上课讲了几个常见的问题和解决方法,分享一下,有什么不对的地方还请大佬们指点!
- 如何从键盘接受一个整数?!
例如:
string attr=Console.ReadLine();
int number=int.Parse(attr);
或者
string attr=Console.ReadLine();
int number;
bool flag=int.TryParse(attr,out num);
大家应该还记得
Console.Read();
这个方法不?为什么不用这个方法呢?
- 首先,Console.Read()这个方法只能读取键盘输入的一个字符;
- 其次,存储时,存储的是这个字符的ASCII 值,所以要用int类型的变量存;
- 再者,当输出时,输出的也是字符的ASCII值,而且此方法能接收任意键盘输入(包括回车符);
- 以下是小例子:
//第一个Console.Read()方法
Console.WriteLine("The first one!");
int attr1 = Console.Read();
Console.WriteLine(attr1);
//第二个Console.Read()方法
Console.WriteLine("The second one!");
int attr2 = Console.Read();
Console.WriteLine(attr2);
//Console.ReadLine()方法
Console.WriteLine("Console.ReadLine()方法");
string attr3 = Console.ReadLine();
Console.WriteLine(attr3);
Console.ReadKey();
2.
这里,大家肯定会想到Int.Parse()方法和Convert.ToInt32()方法。但,选用哪一个还要视情况而定。
- 对于Int.Parse()方法,总共有4种重载形式,但,他的参数都是string类型,所以当数字为char类型时,不能用此方法。
- 对于Convert.ToInt32()方法,他有多种重载形式,参数可以是string,也可以是char类型,还可以为double,decimal,等多种类型。
- 直接用Convert.ToInt32()方法可以吗?肯定是不行的。当被转换的数字是单个字符(char)时,直接用此方法得到的是这个字符的ASCII值,当被转换的数字是string类型时,才能直接转换成对应的数值。
就这些,如果有什么错误,请大家帮忙指出。