C# - ConsoleKey(콘솔키)

Dev_Jen
|2025. 7. 8. 14:37
반응형

✅ ConsoleKey란?

ConsoleKey는 C#에서 키보드의 실제 키를 표현하기 위한 **열거형(enum)**이야.
예를 들어, 키보드의 화살표 키, Enter, A, B, 숫자 1~9, ESC 등
모두 ConsoleKey의 값으로 표현할 수 있어.


✅ 사용 예시

ConsoleKeyInfo keyInfo = Console.ReadKey(true);
ConsoleKey key = keyInfo.Key;

if (key == ConsoleKey.LeftArrow)
{
    Console.WriteLine("왼쪽으로 이동");
}
  • Console.ReadKey() → 사용자가 누른 키를 읽음
  • .Key → 어떤 키인지 ConsoleKey로 반환
  • ConsoleKey.LeftArrow → 키보드 왼쪽 화살표

✅ 자주 사용하는 ConsoleKey 값

키보드 키 ConsoleKey값
↑ 위 화살표 ConsoleKey.UpArrow
↓ 아래 화살표 ConsoleKey.DownArrow
← 왼쪽 화살표 ConsoleKey.LeftArrow
→ 오른쪽 화살표 ConsoleKey.RightArrow
ESC 키 ConsoleKey.Escape
엔터 ConsoleKey.Enter
스페이스바 ConsoleKey.Spacebar
알파벳 A ConsoleKey.A
숫자 1 ConsoleKey.D1
숫자 0 ConsoleKey.D0

숫자 키는 D1, D2, ..., D9, D0이고
키패드 숫자는 NumPad1, NumPad2, ... 로 구분됨


✅ 실제 예제: 방향키 컨트롤

while (true)
{
    ConsoleKeyInfo keyInfo = Console.ReadKey(true);
    ConsoleKey key = keyInfo.Key;

    switch (key)
    {
        case ConsoleKey.UpArrow:
            Console.WriteLine("위");
            break;
        case ConsoleKey.DownArrow:
            Console.WriteLine("아래");
            break;
        case ConsoleKey.LeftArrow:
            Console.WriteLine("왼쪽");
            break;
        case ConsoleKey.RightArrow:
            Console.WriteLine("오른쪽");
            break;
        case ConsoleKey.Escape:
            Console.WriteLine("종료!");
            return;
    }
}

✅ 응용: ConsoleKey를 조건 비교에 쓰기

if (key == ConsoleKey.W || key == ConsoleKey.UpArrow)
{
    Console.WriteLine("위로 이동 (W or ↑)");
}

WASD 키와 화살표 키를 함께 인식할 수도 있어!


🎯 요약

특징 설명
타입 enum (열거형)
용도 어떤 키가 눌렸는지 판단
주요 메서드 Console.ReadKey().Key
대표 값 UpArrow, Enter, Escape, A, D1, Spacebar 등

이번에 스네이크 게임을 만들면서 알게된 내용이다.

유니티에서 만들때나 키보드 입력값 많이 써봤지 C# 콘솔에서도 키보드 입력값이 들어갈 줄 몰랐다 ㅎㅎ..

아직도 공부할게 산더미 인듯 하다 열심히하자아ㅏ!!!

반응형