다음 Enum을 정의했다고 상상해보십시오.
public enum Status : byte
{
Inactive = 1,
Active = 2,
}
열거 형을 사용하는 가장 좋은 방법은 무엇입니까? 1
위의 예제 와 같이 시작 하거나 다음 과 같이 0
명시 적 값없이 시작 해야합니다 .
public enum Status : byte
{
Inactive,
Active
}
답변
✔️ DO는 간단한 열거 형에 0 값을 제공합니다.
“없음”과 같은 값을 호출하십시오. 이러한 값이이 특정 열거 형에 적합하지 않은 경우 열거 형의 가장 일반적인 기본값에는 기본 값인 0이 할당되어야합니다.
프레임 워크 디자인 가이드 라인 / 플래그 열거 디자인 :
❌ 값이 “모든 플래그가 지워짐”을 나타내지 않고 다음 지침에 규정 된대로 적절하게 명명되지 않은 경우 플래그 열거 형 값 0을 사용하지 마십시오.
✔️ DO 열거의 0 값 이름을 None으로 지정하십시오. 플래그 열거의 경우, 값은 항상 “모든 플래그가 지워짐”을 의미해야합니다.
답변
글쎄, 나는 대답을 명시 적으로 번호를 매기 지 않는다고 말하는 대부분의 답변에 동의하지 않는 것 같습니다. 나는 항상 명시 적으로 번호를 매기지만, 대부분의 경우 정수 값으로 저장된 데이터 스트림에 유지하기 때문입니다. 명시 적으로 값을 추가하지 않고 새 값을 추가하면 직렬화가 중단되고 오래 지속되는 개체를 정확하게로드 할 수 없습니다. 이러한 값의 영구 저장소 유형을 수행하려는 경우 값을 명시 적으로 설정하는 것이 좋습니다.
답변
Enum은 값 유형이며 명시 적으로 초기화되지 않은 경우 기본값 (예 : 클래스의 Enum 필드)은 0입니다.
따라서 일반적으로 정의 된 상수 (예 : 알 수 없음)로 0을 원합니다.
예를 들어, Inactive
기본값이 되려면 값이 0이어야합니다. 그렇지 않으면 상수 추가를 고려할 수 있습니다 Unknown
.
일부 사람들은 상수 값을 명시 적으로 지정하지 않는 것이 좋습니다. 대부분의 경우 좋은 조언이지만, 그렇게하고 싶을 때가 있습니다.
-
플래그 열거 형
-
외부 시스템과의 상호 운용에 사용되는 값을 가진 열거 형 (예 : COM)
답변
특별한 이유가 없다면, 열거 형을 기본값 인 0으로 시작하십시오.
public enum Status : byte
{
Inactive,
Active
}
답변
가장 좋은 방법은 번호를 지정하지 않고 암시 적으로 만드는 것입니다. 0에서 시작합니다. 암시 적이므로 항상 따라야하는 언어 기본 설정 🙂
답변
부울 타입 열거 형을 0으로 시작합니다.
“Inative”가 “Inactive”이외의 것을 의미하지 않는 한 🙂
이것은 그 표준을 유지합니다.
답변
사용 방법에 따라 다릅니다. 열거를 플래그 지정하려면 다음 None
과 같이 값에 0을 지정하는 것이 좋습니다 .
[Flags]
enum MyEnum
{
None = 0,
Option1 = 1,
Option2 = 2,
Option3 = 4,
All = Option1 | Option2 | Option3,
}
열거 형이 데이터베이스 조회 테이블에 매핑 될 가능성이 높으면 1로 시작합니다. 전문적으로 작성된 코드에는별로 중요하지 않지만 가독성이 향상됩니다.
다른 경우에는 0 또는 1로 시작하는지 여부를 신경 쓰지 않고 그대로 둡니다.