방프리
20.03.21 Chapter2. C# 언어 요소 (Item 2) 본문
Item 2: const보다는 readonly가 좋다.
C#에서의 상수 표현은 컴파일 타임 상수와 런타임 상수 두 가지로 나뉜다고 한다. const는 컴파일 타임의 상수,
readonly는 런타임의 상수로 각각 작동하는 방식이 조금씩 다르다고 한다.
쓰는 목적이 다른데 작가는 const보다는 readonly를 좀 더 사용하는 것을 추천했다.
이유인 즉, 런타임 상수는 어떠한 타입과도 함께 사용할 수 있는 (런타임때에 초기화 되는 값을 보고 타입을 판단함)
반면 컴파일 타임의 상수는 여러 타입에 대한 대응이 불가능하다. 내장된 숫자형, enum, 문자열, null에 대해서만
컴파일 상수는 값을 가질 수 있다. 또한 런타임 상수는 인스턴스별로 서로 다른 값을 가질 수 있다.
특히 런타임 상수는 값에 대한 대응이 컴파일 타임 상수에 비해 유연하여 배포과정에서 수정이 일어날 경우 쉽게
대응할 수 있다. 하지만 컴파일 타임 상수도 장점이 있다. 속도나 성능면에서는 런타임 상수에 비해 훨씬 더 빠르다.
프로파일링이나 테스트를 통해 유연하게 사용하는 것이 좋지만 런타임 상수가 가지고 있는 너무나 많은 장점들을
포기하기엔 아깝지 않나 생각된다.
'C# > Effective C#' 카테고리의 다른 글
20.03.26 Chapter1. C# 언어 요소 (Item 6) (0) | 2020.03.28 |
---|---|
20.03.25 Chapter1. C# 언어 요소 (Item 5) (0) | 2020.03.26 |
20.03.24 Chapter1. C# 언어 요소 (Item 4) (0) | 2020.03.24 |
20.03.23 Chapter1. C# 언어 요소 (Item 3) (0) | 2020.03.23 |
20.03.18 Chapter1. C# 언어 요소 (Item 1) (0) | 2020.03.18 |
Comments