const (상수)
const는 컴파일할 때 값이 결정되는 상수다.
따라서 선언과 동시에 초기화되어야 하며, 모든 인스턴스에 대해 공통인 특징을 가지고 있다.(마치 static처럼)
값 타입과 문자열만 가능하며, 런타임 값(예 : DateTime.Now)으로는 초기화할 수 없다.
const int MaxPlayerCount = 4;
const string Greeting = "Hello, world!";
만약 다른 프로젝트에서 참조하는 라이브러리의 const 값이 바뀌면, 해당 라이브러리를 참조한 프로젝트는 다시 컴파일해야 반영된다.
readonly (읽기 전용)
readonly도 const와 마찬가지로 한 번 초기화하면 값을 바꿀 수 없지만,
const에 비해 초기화 시기와 할당 가능한 값의 범위가 유연하다.
요컨대 readonly는 선언과 동시에 초기화하는 것도 가능하지만, 런타임 때 값을 결정해도 상관 없다.
일단 선언만 해두고 생성자에서 초기화를 하는 방식이 가능하다는 의미이다.
이런 특징 덕분에 런타임 값으로도 초기화할 수 있다.
public class GameConfig
{
public readonly int maxHP = 100;
public readonly DateTime initTime;
public GameConfig()
{
initTime = DateTime.Now; // 생성자에서 초기화 가능
}
}
'C# > TIL(Today I Learned)' 카테고리의 다른 글
2025-04-26 <형변환> (0) | 2025.04.26 |
---|---|
2025-04-24 <박싱과 언박싱> (0) | 2025.04.24 |
2025-04-19 <ArraySegment> (0) | 2025.04.19 |
2025-04-18 <SocketAsyncEventArgs 이해하기> (2) | 2025.04.18 |
2025-04-18 <C# 비동기 멀티스레드 서버 구현하기> (0) | 2025.04.18 |
댓글