这是我的原始代码,我试图将其修改为将数据输入限制为单个char
,并转换为大写。
public char promptForGuess()
{
Console.Write("\nGuess a letter: ");
return Convert.ToChar(Console.ReadLine().ToUpper());
}
我觉得这很容易:
public char promptForGuess()
{
Console.Write("\nGuess a letter: ");
return Convert.ToChar(Console.ReadKey().ToUpper());
}
但是我收到了这个错误:
'System.ConsoleKeyInfo' does not contain a definition for 'ToUpper' and no extension method 'ToUpper' accepting a first argument of type 'System.ConsoleKeyInfo' could be found (are you missing a using directive or an assembly reference?)
这对我来说并不是很重要...而谷歌也不是非常有帮助。我试过这个,
public char promptForGuess()
{
Console.Write("\nGuess a letter: ");
return = Console.ReadKey();
}
并收到一条消息,我无法将ReadKey()
隐式转换为char
。
public String promptForGuess()
{
Console.Write("\nGuess a letter: ");
return Console.ReadKey();
}
告诉我,我无法将Console.ReadKey()
隐式转换为String
因此,如果它不是char
而不是String
,那么Console.ReadKey()
是什么类型。如何使用char
返回ToUpper()
?
答案 0 :(得分:3)
Console.ReadKey()返回ConsoleKeyInfo。将来您可以通过阅读documentation来自己回答这些问题。 ConsoleKeyInfo的页面有一个如何使用它的完整示例。关键位是:
cki = Console.ReadKey();
Console.WriteLine(cki.Key.ToString());