문제

인사말,

저는 OO와 프로그래밍의 초보자이며 다음과 같은 상황이 있습니다.

나는 내가 구현하는 몇 가지 클래스가 공유하는 const 값과 열거 세트를 가지고 있습니다.

이 클래스는 이러한 값을 공유하는 것 외에 독립적 인 IE이며 서로 상호 작용하지 않으므로 상속하는 것이 작동하지 않습니다.

나는 궁금했다. 이 consts와 enums만으로 빈 클래스를 만들고 각 클래스에서 이러한 클래스의 객체를 선언하면 다음과 같은 값을 사용할 수 있습니다.

Globals.enum.enumember?

이 사운드 프로그래밍입니까 아니면 더 좋은 방법이 있습니까?

시간 내 줘서 고마워.

도움이 되었습니까?

해결책

모범 사례는 수업에 중첩되지 않고 수업과 함께 열거를 간단히 선언하는 것입니다. 실제로 중첩 된 유형은 개인이 아닌 한 일반적으로 나쁜 생각입니다. 물론 예외가 있지만 대부분은 둥지없이 더 좋습니다.

상수는 클래스에서 정의되어야하지만 클래스의 객체를 인스턴스화 할 필요는 없습니다. 또한 그들은 공개 될 수 있으므로 아무것도 상속받을 필요가 없습니다. 당신이 그것에 대해 충분히 생각하면, 당신은 이러한 상수를 포함하는 수업에 좋은 이름을 알아낼 수 있어야합니다.

연습은 상수와 열거가 거의 전 세계적이지 않다는 것을 보여줍니다. 대부분의 경우 그들은 하나 이하의 수업과 밀접한 관련이 있습니다. 그런 다음 이러한 상수를 적절한 클래스의 일부로 정의하고 사용하는 클래스와 동일한 네임 스페이스에 열거를 넣어야합니다.

다른 팁

정적 멤버와 정적 클래스를 사용하여 원하는 행동을 달성 할 수 있습니다.

namespace A {
    public static class Enum1 {
       public static readonly int EnumMember1 = 1;
       public static readonly int EnumMember2 = 2;
       public static readonly int EnumMember3 = 3;
    }
}

다음과 같은 방식으로 사용해야합니다.

int x = A.Enum1.EnumMember2;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top