나는 정적 인 읽기 전용 변수의 수를 저장하는 상수를 가지고있다.Constants 클래스의 정적 속성에 기초 필드를 구현해야합니까?
나는이 작업을 수행해야 : 나 종류의 중복 보인다
private static readonly int _maxThings = 100;
...
public static int MaxThings { get { return _maxThings; } }
. 왜 내가 다음과 같이하지 않는 이유가 있을까요?
public static int MaxThings { get { return 100; } }
편집
좋아때문에,이 질문의 뇌 방귀이었다. 나는이 값을 초기화 할 때 정적 백킹 필드를 사용하고 정적 자체 일 필요가없는 공용 get-only 속성을 노출하는 것이 중요하다고 생각합니다.
그러나 public static 속성을 어려운 값으로 설정하는 것이 편리하다면 그 사이에는 기능상의 차이가 없으며 어셈블리로 베이킹하면됩니다. 내가 여기에 놓치고있는 다른 개념이 없다면,이 경우에 그냥 const를 사용할 것입니다.
답변 해 주셔서 감사합니다.
왜하지 않으려는 이유가 있습니까? public const int MaxThings = 100; – Anero
@Anero, 누가 코드를 호출했는지에 따라, MaxThings이 실제로 상수가 아닐 수도 있습니다.진정으로 일정한 PI 또는 Zero와는 달리 MaxThings은 하루 200 일이 될 수도 있습니다. 상수 기호는 컴파일 타임에 바뀌므로 다른 어셈블리도 다시 컴파일 될 때까지 변경 사항을 "볼"수 없습니다. – Josh