使用Console.Readline显示字符集时出错



我是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中一样,将它们显示为字符串。

最新更新