반응형
<const>
: 변수를 상수로 만들어주며, (런타임 시에)값을 변경하거나 수정할 수 없습니다.
* 기본적으로 static
* 반드시 값이 초기화되어야 함.
<readonly>
: 변수를 읽기 전용으로 만들어주며, 선언 시 또는 클래스 생성자에서 초기화 후에 수정할 수 없습니다.
* 선언할 때 값을 초기화하는 것이 필수가 아님.
* 생성자 외부에서 값을 수정할 수 없음.
class ReadOnlyExample
{
public readonly int num = 5;
public ReadOnlyExample()
{
num = 33;
}
public ReadOnlyExample(bool isTrue)
{
num = 500;
}
}
ReadOnlyExample ex1 = new ReadOnlyExample();
ReadOnlyExample ex2 = new ReadOnlyExample(true);
Console.WriteLine((ex1.num)); //33출력
Console.WriteLine((ex2.num)); //500출력
<const와 readonly의 공통점과 차이점>
<공통점>
- ‘값을 변경할 수 없다’
<차이점>
- 값이 정해지는 타이밍
- const : 컴파일 시 불변값이 정해짐 → 런타임에 값을 변경하려고 하면 compile-time 오류가 발생.
- readonly : compile 시점에 값을 확정하지 않고, 런타임 시점에 이르러서야 값을 확정.
반응형
'[Unity] > [C#]' 카테고리의 다른 글
[C#] is, as 연산자 (1) | 2022.10.11 |
---|---|
[C#] 제네릭(Generic) (0) | 2022.10.07 |
[C#] reflection (0) | 2022.10.05 |
[C#] partial 클래스 (0) | 2022.10.04 |
[C#] 일반화 프로그래밍 (2) | 2022.09.30 |