06-23 04:16
Recent Posts
Recent Comments
Today
Total
관리 메뉴

뽕구의 개발일지

[Effective C#] 1장 C# 언어 요소 - Item02 : const보다 readonly가 좋다 본문

개발 일지/개발 도서 리뷰

[Effective C#] 1장 C# 언어 요소 - Item02 : const보다 readonly가 좋다

뽕구 2025. 5. 7. 23:28
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
반응형