뽕구의 개발일지
[Effective C#] 1장 C# 언어 요소 - Item02 : const보다 readonly가 좋다 본문
728x90
반응형
저자 : 빌 와그너
역자 : 김명신
출판사 : 한빛미디어
ISBN :9791162240038
https://www.hanbit.co.kr/store/books/look.php?p_code=B8349603240
이펙티브 C#(3판)
더 나은 C# 코드를 작성하는 새로운 방법 50가지
www.hanbit.co.kr
1장 C# 언어요소
Item02 : const보다 readonly가 좋다
const, readolny 읽기 전용 상수 개념이 나왔습니다.
우선 const와 readonly의 차이부터 간단히 짚고 넘어가보겠습니다.
컴파일 타임에 생성되는 상수 const와 런-타임에 생성되는 상수 readolny를 간단히 비교한 표입니다.
const | readolny | |
생성 시기 | 컴파일 타임 상수 | 런타임 상수 |
컴파일 | 값으로 대체 | 상수에 대한 참조 코드 생성 |
클래스 객체 생성 여부 | 생성 필요없이 static하게 접근 | static 키워드 없다면 객체 생성 시 접근 가능 |
속도 | 빠름 | 느림 |
유연성 | 유연하지 못함 | 유연함 |
메서드 내 선언 | 가능 | 불가능 |
컴파일 타임 상수의 경우 대체된 값으로 변수를 선언한 것과 동일하게 IL 코드가 생성되고,
런타임 상수의 경우 상수에 대한 참조 코드를 생성합니다.
따라서, const는 코드에서 대입한 값의 불변이고, readonly는 런-타임 시 대입한 값의 불변이 되겠네요.
사용 예)
const는 고정된 path, enum 정의 등에 사용될 것이고, readonly는 한 세션에서 유지될 수 있는 ID 값 등이 될 수 있겠습니다.
상수 값을 런타임 상에 바꿀 수 있는 유연성 때문에라도 대부분의 경우 readonly를 사용하는 것을 추천한다고 합니다.
마치며
const, readonly에 대해 알아보았습니다.
두가지 상수에 대해 놓쳤던 부분도 알게 됐습니다.
대부분의 경우 readonly로 사용하고 있어서 다행이네요 ㅎㅎ
읽어주셔서 감사합니다 :)
728x90
반응형
'개발 일지 > 개발 도서 리뷰' 카테고리의 다른 글
[Effective C#] 1장 C# 언어 요소 - Item05 : 문화권별로 FormattableString을 사용하라 (0) | 2025.05.09 |
---|---|
[Effective C#] 1장 C# 언어 요소 - Item04 : string.Format()을 보간 문자열로 대체하라 (0) | 2025.05.08 |
[Effective C#] 1장 C# 언어 요소 - Item03 : 캐스트보다 is, as가 좋다 (0) | 2025.05.08 |
[Effective C#] 1장 C# 언어 요소 - Item01 : 지역변수 선언 시 var가 낫다. (0) | 2025.05.07 |
[Effective C#] Effective C# 리뷰 시작 (1) | 2025.05.07 |