当前位置: 首页 > 编程语言 > C#

ConvertClassandConvertConsoleInputC#分享

时间:2023-04-10 22:31:44 C#

ConvertClassandConvertConsoleInputC#这个问题更像是一个“为什么我不能这样做/我做错了什么”因为我已经设法做到了它程序应该做什么,但它引发了更多关于为什么某些事情按照它们的方式工作的问题。对于初学者来说,这个项目的目标是从控制台窗口捕获一个字符(使用Console.Read()/.ReadLine()),将其转换为类Convert的字符串,然后将其写入控制台窗口。我设法使我的项目具有以下代码的此功能:尝试{Convert.ToInt32(输入);}赶上(异常){}Console.WriteLine(输入);控制台.ReadLine();鉴于这似乎是一个毫无意义的练习,因为转换是不必要的,我认为通过使用.Read()方法而不是.ReadLine()来实现它。这引出了我的问题:为什么.Read()总是打印输入到控制台中的字符的十六进制值,即使MSDN文档使它听起来像.Read()和.ReadLine()以相同的方式工作,除了阅读单个字符和一行,除此之外,为什么我尝试过的Convert类方法(.ToInt、.ToString等)都没有实际给我输出不是十六进制值?到目前为止,这是我尝试过的方法:控制台.ReadLine();控制台.ReadLine();}}}和:namespaceReadConvertWrite{classProgram{staticvoidMain(string[]args){varinput=0;input=Console.Read();字符串InputString=Convert.ToString(输入);控制台.ReadLine();控制台.ReadLine();}}}Console.Read返回一个表示字符的整数。Console.ReadLine返回一个字符串。当您执行Console.WriteLine(Console.ReadLine())时,您只需回显输入。当您执行Console.WriteLine(Convert.ToString(Console.Read()))时,您将获得该字符的数值并将其打印为数字。Convert.ToString(int)不会将整数解释为字符——这相当荒谬。您是否期望Convert.ToString(42)打印*?您需要将整数转换为字符:Console.WriteLine((char)Console.Read());很可能,您不想使用Console.Read-这是与老式CLI相关的相当具体的事情,而不是典型控制台程序的非常有用的东西,除非您需要流式传输大量字符并希望避免不必要地分配巨大的字符串。确保正确处理文件结尾-当输入流结束时,Console.Read()将返回-1,这不是char的有效值。如果将鼠标悬停在Read()上,它将显示它返回一个int而不是字符串。将“int”转换为字符串只是int的字符串表示形式。要从int中获取字符,请将其转换为char。转换为char会将数字转换回其字符表示形式。以上就是C#学习教程的全部内容:转换类和转换控制台输入C#分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注—Console.WriteLine((char)Console.Read());本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: