상수를 정의할 때 public으로 지정해서 다른 클래스가 접근할 수 있게 한 경우에는 const 대신 static readonly를 사용
(응용 프로그램을 개발할 때 버전 수정을 통해 변경될 가능성이 없는 고정값 숫자는 실제로 거의 없기 때문에 실질적으로는 const대신 전부 static readonly를 사용하는 것이 추천된다.)
const 키워드로 상수를 정의해서 고정 숫자값을 한 곳에서 정의할 수 있다.
const는 매우 편리한 기능이지만 주의해야 할 점이 있다.
const로 지정한 상수는 public으로 지정하지 않는 것이 좋다는 것이다.
private으로 지정했을 경우에는 문제가 없지만 public으로 지정해서 다른 클래스가 참조할 수 있게 했을 경우에는 버전 관리에 관한 문제가 발생할 위험이 있다.
const로 정의한 값은 빌드할 때 값이 결정되므로
dll을 교체해도 exe는 여전히 예전 값을 사용해서 동작하게 된다.
readonly일 경우에는 실행할 때 값이 참조된다.
따라서 dll을 교체해도 프로그램이 새로운 값을 사용해서 동작합니다.
나중에 변경될 가능성이 있는 값을 상수로 지정해서 공개할 경우에는 const 키워드가 아닌 static readonly를 사용해야 한다.
'C# > 기본적인 팁' 카테고리의 다른 글
딕셔너리와 비슷하지만 '키' 부분만 저장하고 '값'을 저장하지 않는 HashSet<T> 클래스 (0) | 2021.08.23 |
---|---|
배열과 List<T>의 다양한 처리 (조건을 만족하는 요소 구하기, 중복 제거, 순서대로 나열, 컬렉션 연결) (0) | 2021.08.16 |
기본적인 관용구 (0) | 2021.08.04 |
구체적인 클래스가 아니고 인터페이스에 대해 프로그래밍하자. (0) | 2021.05.18 |
형식적으로 인스턴스를 생성하는 것은 낭비이다. (0) | 2021.05.18 |