const 보다는 readonly 가 좋다
아이템 2 : const 보다는 readonly 가 좋다
- const : 컴파일 상수, readonly : 런타임 상수
- readonly 로 선언된 값에는 객체의 생성자가 호출되는 시기에 값이 결정될 수 있어서 훨씬 유연하다.
- 좀더 복잡한 경우로는, 프로젝트 내에서 특정 어셈블리만 수정했을 경우, 일부 파일만 리빌드했을 때, const의 값이 바뀌지 않는 경우가 있다. 컴파일을 하는 시간에 IL 코드에서 값이 고정되어 버리기 때문. -> 값이 변경되지 않아 원하지 않는 동작을 할 가능성이 있다.
- 컴파일할 때 사용되는 상숫값을 정의할 때 반드시 const를 사용해야 한다. 특성attribute 의 매개변수, switch/case 문의 레이블, enum의 정의 시 사용하는 상수 등은 컴파일 시에 사용돼야 하므로 반드시 const를 통해서 초기화되어야 한다.
댓글
댓글 쓰기