2013-05-11 3 views
1

여기에 데이터 입력을 단일 문자로 제한하기 위해 수정하려고했던 원래 코드가 있는데 대문자로 변환되었습니다.Console.ReadKey()가 반환하는 값에 문제가 있습니다.

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(); 
    } 

을이 시도하고 내가 암시 charReadKey()을 변환 할 수있는 메시지를 받았습니다.

public String promptForGuess() 
    { 
     Console.Write("\nGuess a letter: "); 
     return Console.ReadKey(); 
    } 

char 아니라하지 String, Console.ReadKey() 어떤 유형의 경우 내가 암시 그래서 String

Console.ReadKey()을 변환 할 수 있음을 알려줍니다. 그리고 charToUpper()과 함께 반환하려면 어떻게해야합니까?

답변

3

Console.ReadKey()는 ConsoleKeyInfo을 반환합니다. 앞으로는 documentation을 읽고 이러한 질문에 스스로 대답 할 수 있습니다. ConsoleKeyInfo 페이지에는이를 사용하는 방법의 전체 예제가 있습니다. 핵심 비트는 다음과 같습니다.

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

그 페이지를 보았습니다 ... ConsoleKeyInfo가 유형이라는 것을 이해하지 못했습니다. 이제 훨씬 더 의미가 있습니다! 감사. – dwwilson66

+1

문제 없습니다. 문서를 읽는 방법을 알면 삶이 편하게됩니다! – redtuna