我在使用Console.ReadKey()返回的值时遇到问题

时间:2013-05-11 01:19:46

标签: c# console.readkey

这是我的原始代码,我试图将其修改为将数据输入限制为单个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()

1 个答案:

答案 0 :(得分:3)

Console.ReadKey()返回ConsoleKeyInfo。将来您可以通过阅读documentation来自己回答这些问题。 ConsoleKeyInfo的页面有一个如何使用它的完整示例。关键位是:

cki = Console.ReadKey();
Console.WriteLine(cki.Key.ToString());