열거 형을 사용하는 클래스가 있는데 열거 형은 현재 자체 파일에있어 낭비되는 것처럼 보입니다.
열거 형이 사용되는 파일의 네임 스페이스 내에 배치되는 것에 대한 일반적인 의견은 무엇입니까? 아니면 열거 형이 실제로 자체 cs 파일에 있어야합니까?
편집하다
문제의 클래스가 이러한 열거를 사용하지만 외부 호출자도 사용한다고 언급해야합니다. 즉, 다른 클래스가 이러한 열거를 설정할 수 있습니다. 그래서 그들은 수업에 내부적으로 사용되지 않습니다. 그렇지 않으면이 질문은 더 똑똑하지 않을 것입니다.
답변
“더 이상하지 않다”고 말하지 않지만 (추가 파일 비용은 얼마입니까?) 종종 불편합니다. 일반적으로 열거 형과 가장 밀접하게 관련된 클래스가 하나 있으며 동일한 파일에 넣습니다.
답변
이것은 실제로 선호의 문제입니다.
각 열거 형을 자체 파일에 넣는 것을 선호합니다 (소형에 관계없이 각 인터페이스, 클래스 및 구조체에 대해 동일). 다른 솔루션에서 왔거나 해당 유형에 대한 참조가없는 경우 쉽게 찾을 수 있습니다.
각 파일에 단일 유형을 넣으면 확산없이 소스 제어 시스템의 변경 사항을보다 쉽게 식별 할 수 있습니다.
답변
이것은 전적으로 스타일의 문제입니다. 내가하는 경향 Enums.cs
은 열거 형 선언이 수집되는 솔루션에서 파일을 호출 하는 것입니다.
그러나 그들은 일반적으로 F12어쨌든 열쇠를 통해 발견됩니다 .
답변
스스로에게 물어볼 질문은 C #에 열거 형에 대해 내가 만든 다른 모든 유형과 다르게 취급해야한다는 것을 나타내는 것이 있습니까?
열거가 공개 인 경우 다른 공개 유형과 같이 취급해야합니다. 비공개 인 경우이를 사용하여 클래스의 중첩 멤버로 선언하십시오. 하나는 열거 형이기 때문에 두 개의 공용 유형을 동일한 파일에 넣을 이유가 없습니다. 그것이 공개적인 유형이라는 사실이 중요합니다. 유형의 맛은 그렇지 않습니다.
답변
각 유형 (클래스, 구조체, 열거 형)을 자체 파일에 넣는 또 다른 이점은 소스 제어입니다. 유형의 전체 기록을 쉽게 얻을 수 있습니다.
답변
나는 네임 스페이스 내부와 클래스 외부에 배치하여 아래와 같이 네임 스페이스의 다른 클래스에 쉽게 액세스 할 수 있도록합니다.
namespace UserManagement
{
public enum UserStatus { Active, InActive }
class User
{
...
}
}
답변
일반적으로 나는 열거 형이 클래스와 동일한 파일에 있고 속성이 될 것입니다. 예를 들어 클래스 가 있으면 Task
열거 형 TaskStatus
은 동일한 파일에 있습니다.
그러나 더 일반적인 성격의 열거 형이 있으면 다양한 파일에 컨텍스트로 유지합니다.