我是C#编程的新手,我一直在研究一个简单的程序,但已经击中了一个块。当我使用Console.Read()
时,该代码正常工作,但是它仅显示用户输入的第一个字符,当我尝试使用用户Console.ReadLine
时,它将被突出显示为A 编译时间错误
不能隐式将"字符串"类型转换为int'。
如果有人可以帮助我,我已经提供了下面的代码。
StringBuilder idnum = new StringBuilder();
int i, count = 0;
while ((i = Console.Read() != 9)
{
if (++count <= 9);
Console.WriteLine("Error Character count exceeded");
idnum.Append((char)i);
break;
}
我需要程序来显示输入字符输入。
似乎,您想读取 integer value
(例如, 123
(;但是,像
int value = Console.ReadLine(); // compile time error here
不编译,因为Console.ReadLine()
返回string
,而不是int
。您可以尝试在int.TryParse
的帮助下尝试Parse
输入值,直到提供了正确的输入:
int value = 0; // initialization : let compiler be happy
// keep on asking until valid input is provided
while (true) {
Console.WriteLine("Please, input an integer value");
// read input and try to parse it
if (int.TryParse(Console.ReadLine(), out value))
break; // break, if input is a valid integer
// int.TryParse returned false - parsing failed - let user know it
Console.WriteLine("Sorry, it's not an integer value. Please, try again.");
}
// from now on, value contains an integer input from user
Console.Read()
从输入中返回 first 字符作为 int
,这就是为什么它可以工作的原因。另一方面,Console.ReadLine()
返回输入string
,直到找到一个新的行字符(通常对应于要按下的Enter键(。这意味着您不能正如编译器告诉您的那样,您无法将其返回值分配给I。使用Convert
类及其方法可方便地将一种类型转换为所需的类型,例如i = Convert.ToInt32(Console.ReadLine())
。请记住,如果转换失败,即字符串不仅包含数字字符,这可能会导致异常。正如Giovanni Patruno在评论中指出的那样,使用Console.WriteLine(...)
显示您的变量。从object
继承的ToString()
方法隐含地为您调用,就像在Java中一样,将它们显示为字符串。