C#中string获取输入时的区别及报错原因咨询
C#中用string获取输入的两种情况区别及报错原因
两种场景的区别
正确的输入获取方式:
Console.ReadLine()Console.ReadLine()是专门读取整行输入的方法,返回值本身就是string类型,直接赋值给string变量即可正常使用:string userInput = Console.ReadLine();它会完整返回用户按下回车前输入的所有内容(包括空格),完全符合获取文本输入的需求。
容易踩坑的错误用法:直接用
Console.Read()给string变量赋值Console.Read()的返回值是int类型,它仅读取输入流中单个字符的ASCII码值,并非字符串。如果直接编写如下代码:// 编译报错:int类型无法直接赋值给string string userInput = Console.Read();哪怕强行转换为字符串,比如
string userInput = Console.Read().ToString();,得到的也只是单个字符的数字编码,根本不是预期的输入文本内容。
报错的核心原因
C#是强类型语言,对类型匹配要求严格:
Console.ReadLine()返回string类型,与目标变量类型完全匹配,编译和运行都不会出现问题。Console.Read()返回int类型,和string类型不兼容,直接赋值会触发编译错误;即便强行转换,也无法实现获取输入文本的预期效果。
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

