[C#] const VS readonly

Minsang Kim·2024년 1월 31일

기술면접

목록 보기
4/6

오늘의 질문

const와 readonly의 차이점에 대해 설명해주세요.

오늘의 답변

const와 readonly 모두 변수를 읽기 전용으로 만드는 상수형 타입의 키워드입니다.
const는 컴파일 상수로, 변수 선언과 동시에 값을 할당해주어야 하고, 정적 변수처럼 객체가 생성되어 있지 않아도 접근 가능합니다. 내장 자료형에 대해서만 사용이 가능합니다.
readonly는 런타임 상수로, 변수 선언시 값을 할당하지 않고, 생성자에서 값을 할당하는 것이 가능합니다. 비정적 변수처럼 객체를 생성하고 인스턴스를 통해 접근해야하며, 모든 자료형에 대해 사용 가능합니다.

깊게 보기

저장 메모리

const는 스택 메모리, 단 static 선언을 하면 힙 메모리에 저장되고.

readonly는 힙 메모리에 저장된다.

const보다 readonly가 낫다?

const는 스택 메모리에 저장되기 때문에 접근이 빠르지만, 컴파일 상수이기 때문에 const 변수 값이 바뀌는 경우 해당 프로젝트뿐만 아니라 참조받거나 영향을 받는 프로젝트 모두 재컴파일을 해야한다는 단점이 있다.

반면, readonly는 생성자에서 초기화하여 사용할 수 있기 때문에 유연하며, 실제 사용하는 단계에서 변수의 값을 가져오는 장점이 있다.

=====================================================

참조

[C#] const와 readonly의 차이
[C#]const와 readonly 차이점

profile
게임만 하다가 개발자로

0개의 댓글