C#문법

[C# 문법] Part17 const 키워드

BlackWolfDev 2025. 2. 2. 23:25

개요

오늘은 C#에서 중요한 키워드 중 하나인 const에 대해 자세히 알아보겠다.


const란?

const는 "constant"의 줄임말로, 한번 값이 할당되면 절대 변경할 수 없는 상수를 선언할 때 사용하는 키워드다.

변수와 달리 const로 선언된 값은 프로그램 실행 중에 절대 바뀔 수 없다.


const의 특징

 

  1. 선언과 동시에 초기화가 필요
  2. 컴파일 타임에 값이 결정
  3. 모든 기본 데이터 타입(int, string, double 등)에 사용 가능
  4. 메서드의 반환값으로는 초기화할 수 없음

사용예시

public class GameConstants
{
    // 게임 기본 설정 관련 상수
    private const string GAME_TITLE = "Dragon Quest";
    private const int MAX_PLAYERS = 4;
    private const int MAX_LEVEL = 99;
    
    // 캐릭터 스탯 관련 상수
    private const int BASE_HP = 100;
    private const int BASE_MP = 50;
    private const double CRITICAL_MULTIPLIER = 1.5;

    public static void Main()
    {
        // 게임 시작 시 기본 정보 출력
        Console.WriteLine($"게임 제목: {GAME_TITLE}");
        Console.WriteLine($"최대 플레이어 수: {MAX_PLAYERS}명");
        Console.WriteLine($"최대 레벨: {MAX_LEVEL}");
        Console.WriteLine($"기본 체력: {BASE_HP}");
        Console.WriteLine($"기본 마나: {BASE_MP}");
        Console.WriteLine($"크리티컬 데미지: 기본 공격력 x {CRITICAL_MULTIPLIER}");
    }
}

 


const의 활용법

1. 게임 아이템 설정

public class ItemConstants
{
    public const int MAX_INVENTORY_SLOTS = 20;
    public const int MAX_EQUIPMENT_SLOTS = 8;
    public const int MAX_STACK_SIZE = 99;
    public const double SELL_PRICE_RATIO = 0.5; // 판매가는 구매가의 50%
}

 

2. 게임 밸런스 상수

public class GameBalance
{
    public const float EASY_MODE_MULTIPLIER = 0.8f;    // 쉬움 난이도 데미지 계수
    public const float NORMAL_MODE_MULTIPLIER = 1.0f;  // 보통 난이도 데미지 계수
    public const float HARD_MODE_MULTIPLIER = 1.5f;    // 어려움 난이도 데미지 계수
    
    public const int MAX_PARTY_MEMBERS = 4;            // 최대 파티원 수
    public const int RESPAWN_TIME = 30;               // 부활 대기 시간(초)
}

 

3. 캐릭터 스킬 관련 상수

public class SkillConstants
{
    // 스킬 쿨타임(초)
    public const float FIREBALL_COOLDOWN = 5.0f;
    public const float HEAL_COOLDOWN = 8.0f;
    public const float ULTIMATE_COOLDOWN = 60.0f;
    
    // 스킬 소모값
    public const int FIREBALL_MP_COST = 30;
    public const int HEAL_MP_COST = 50;
    public const int ULTIMATE_MP_COST = 100;
}

 

이렇게 게임 개발에서는 const를 사용하여 게임의 기본 설정값, 밸런스 수치, 아이템 관련 제한값 등을 관리할 수 있다.

이러한 값들을 상수로 관리하면 게임 밸런스 조정이나 패치 시 한 곳에서 편리하게 수정할 수 있다는 장점도 있다.

또한 매직 넘버(코드 안에 직접 입력된 숫자)를 없애고 의미 있는 이름의 상수를 사용함으로써 코드의 가독성도 높일 수 있다.

 
728x90
반응형