C#의 Console.ReadKey() 메서드는 Visual Studio .NET 환경에서 개발할 때 특히 유용하게 사용됩니다. 이 메서드는 프로그램이 키 입력을 기다리도록 만들어, Visual Studio .NET에서 프로그램을 실행했을 때 콘솔 화면이 순식간에 열렸다가 닫히는 것을 방지해 줍니다.
ReadKey() 메서드의 주요 용도
ReadKey() 메서드의 가장 일반적인 용도는 프로그램 실행을 일시적으로 중단하는 것입니다. 사용자가 키를 누를 때까지 프로그램이 대기 상태로 유지되므로, 실행 결과를 화면에서 충분히 확인한 후 종료할 수 있습니다.
또한 ReadKey()는 눌린 키에 대한 정보를 ConsoleKeyInfo 객체로 반환하기 때문에, 특정 키(예: Enter, Esc 등)의 입력 여부를 판별하는 조건 로직을 구현하는 데에도 활용할 수 있습니다.
사용 예제
다음은 현재 시간대 정보를 출력하고, 사용자가 Enter 키를 누를 때까지 프로그램을 대기시키는 예제입니다.
using System;
public class Demo {
public static void Main() {
DateTime date = DateTime.Now;
TimeZoneInfo timeZone = TimeZoneInfo.Local;
Console.WriteLine("Time Zone = {0}\n", timeZone.IsDaylightSavingTime(date) ? timeZone.DaylightName : timeZone.StandardName);
Console.Write(" to exit... ");
while (Console.ReadKey().Key != ConsoleKey.Enter) {}
}
}실행 결과
Time Zone = UTC <Enter> to exit...
코드 설명
위 예제에서 핵심 부분은 while (Console.ReadKey().Key != ConsoleKey.Enter) {} 구문입니다. 이 코드는 다음과 같이 동작합니다.
Console.ReadKey().Key가 사용자가 누른 키를 반환하며, 그 값이 ConsoleKey.Enter와 같지 않으면 빈 루프 본문을 반복하며 계속 대기합니다. 즉, 사용자가 Enter 키를 누르기 전까지는 프로그램이 종료되지 않습니다.
이처럼 ReadKey() 메서드는 콘솔 애플리케이션에서 사용자 입력 대기, 화면 유지, 키 기반 흐름 제어 등 다양한 상황에서 간편하게 활용할 수 있습니다.