const 보다는 readonly 가 좋다


아이템 2 : const 보다는 readonly 좋다

 - const : 컴파일 상수, readonly : 런타임 상수
 - readonly 선언된 값에는 객체의 생성자가 호출되는 시기에 값이 결정될 있어서 훨씬 유연하다.

 - 좀더 복잡한 경우로는, 프로젝트 내에서 특정 어셈블리만 수정했을 경우, 일부 파일만 리빌드했을 , const 값이 바뀌지 않는 경우가 있다. 컴파일을 하는 시간에 IL 코드에서 값이 고정되어 버리기 때문. -> 값이 변경되지 않아 원하지 않는 동작을 가능성이 있다.

 - readonly 보다 const 빠르다는 것은 분명하나 readonly 가지는 유연성을 생각하면 충분히 readonly 고려하는 것이 좋다.
 - 컴파일할 사용되는 상숫값을 정의할 반드시 const 사용해야 한다. 특성attribute 매개변수, switch/case 문의 레이블, enum 정의 사용하는 상수 등은 컴파일 시에 사용돼야 하므로 반드시 const 통해서 초기화되어야 한다.

댓글

이 블로그의 인기 게시물

Unity - Dialogue 시스템을 구현할 때 유용한 무료 에셋

Unity - 메타 파일

Unity - 라이브러리 폴더