728x90
반응형
const보다는 readonly 사용이 권장되는 이유
- C#의 상수는 컴파일 타임(compile time) 상수와 런타임(run time) 상수 두 유형이 있음
- 컴파일 타임 상수는 프로그램이 컴파일될 때 지정되며 동작이 빠른 장점이 있음
- 런타임 상수는 런타임에 값이 평가되며 유연성이 높다는 장점이 있음
- 컴파일 타임 상수는 const 키워드로 정의
- 런타임 상수는 readonly 키워드로 정의
1
2
3
4
5
|
public class UsefulValues
{
public static readonly int StartValue = 5;
public const int EndValue = 5;
}
|
cs |
- 컴파일 타임 상수는 컴파일 시 변수가 값으로 대체됨
- 런타임 상수는 컴파일 시 변수가 값에 대한 참조를 가짐
- 컴파일 상수는 내장된 숫자형, enum, 문자열, null 등 꼭 컴파일 시 값이 정해져야 하는 하는 경우에만 사용하는 것을 권장
- 그 외의 상수의 경우 런타임 상수로 정의하고 프로그램이 실행되는 런타임 시에 정해지도록 하는 것이 좋음
- 그 이유는 상수의 값이 수정되어야하는 경우 컴파일 상수는 변경 후 컴파일을 모두 다시 해야 하지만, 런타임 상수는 런타임 시 값이 결정되어 유연하게 변경이 가능하기 때문
- 예시로는 세금 계산을 하는 동작과 같이 법령에 의해 변경되는 경우가 있으며 이 경우 런타임 상수를 통해 유연성 있는 코드 작성을 가져갈 수 있음
Reference
- effective C#; 강력한 C# 코드를 구현하는 50가지 전략과 기법 3판
반응형
'Study > C#' 카테고리의 다른 글
String.Format()을 보간 문자열로 대체하기 (0) | 2021.07.29 |
---|---|
캐스트보다는 is, as가 더 좋음 (0) | 2021.07.28 |
지역변수를 선언할 때는 var를 사용을 권장하는 이유 (0) | 2021.07.19 |
ThreadPool 사용 예시 (0) | 2021.05.28 |
WPF multi-thread (dispatcher, background worker) (0) | 2021.04.14 |