readonly
- readonly를 사용하여 생성된 변수는 읽기 전용 변수 라고 한다.
- exe 또는 dll을 사용할 때 변수의 값을 가져온다.
- 상수와 달리 변수를 선언할 때 값을 초기화하는 것은 필수가 아니다.
- 생성자에서 읽기 전용 변수를 초기화할 수 있지만, 가장 중요한 점은 생성자 외부에서는 읽기 전용 변수의 값을 수정할 수 없다는 것이다.
- 읽기 전용 변수는 비정적(non-static) 변수와 유사하게 동작한다.
- 상수는 클래스에 대한 값이다. 반면 읽기 전용 변수는 객체(인스턴스)에 대한 값이다.
- 메모리 할당 위치는 Heap Memory이다.
- 모든 자료형에 사용 할 수 있으며, 생성과 동시에 초기화 할 필요는 없다.
const
- const 를 사용하여 생성된 변수는 상수 라고 한다.
- 상수 는 값이 변하지 않는 변수를 의미한다.
- 즉, const로 변수를 선언하면 값을 변경하거나 수정할 수 없다.
- 상수 는 기본적으로 정적(static)이다.
- const 를 사용하여 상수 를 만드는 경우 반드시 값이 초기화되어야 한다.
- 즉,변수 선언과 동시에 값을 할당 해야 한다.
- 상수 변수는 정적 변수와 동일하게 동작한다.
- 즉, 객체(인스턴스) 를 생성할 필요가 없다.
- 정적 변수와 상수 변수의 유일한 차이점은 정적 변수의 값은 수정할 수 있지만 상수 변수의 값은 수정할 수 없다.
- 메모리 할당 위치는 Stack Memory 이다. 단, static 선언을 하면 Heap Memory에 저장 가능하다.
- 내장자료형 (정수형, 실수형, Enum, String)에 대해서만 사용 할 수 있다.
상수는 해당값이 컴파일 시간에 설정되며 변경할 수 없는 값이다.
즉 런타임에 읽기 전용으로 만드는 readonly는 내가 보기엔 상수가 아니다.
혹시 지나가던 고수분들중 이에대해 잘 알고 계신분이 있다면 이유를 알려주시길 바란다...
참조 : 상수 정의 방법 - C# | Microsoft Learn
상수 정의 방법 - C#
컴파일 시간에 값이 설정되는 필드인 C#에서 상수를 정의하는 방법에 대해 알아봅니다. 상수를 사용하여 특수 값에 의미 있는 이름을 제공합니다.
learn.microsoft.com
[C#] const VS readonly
const와 readonly의 차이점에 대해 설명해주세요.
velog.io
[C#]const와 readonly 차이점
const와 readonly 키워드 C#의 const 키워드는 변수를 상수로 만들며, readonly 키워드는 변수를 읽기 전용으로 만듭니다. 이 두 가지 키워드는 '값을 변경할 수 없다'라는 관점에서는 동일하게 보이지만,
developer-talk.tistory.com
참조 : https://holjjack.tistory.com/95
[C#] const와 readonly의 차이
C# 에서 const 와 readonly는 상수형 타입입니다. 보다 자세히 말씀드린다면, const는 컴파일 타입의 상수이며, readonly는 런타임 상수입니다. const 컴파일 타입의 상수이다. (컴파일 시 const 변수의 값을
holjjack.tistory.com
'IT > 학습' 카테고리의 다른 글
재귀함수 (0) | 2024.11.29 |
---|---|
main 함수의 인자 값 (0) | 2024.11.29 |
CLR(공용 언어 런타임) (0) | 2024.11.26 |
c++과 c#의 컴파일 과정 차이 (0) | 2024.11.26 |
DividedByZero ? 흠.. (1) | 2024.11.26 |