2010-08-21 4 views
3

과도한 사용 영역에 관해서 들었지만 클래스에 열거 형을 추가 할 때 클래스 끝에는 #region "Enums"에 넣었고 구조 나 하위 클래스에서도 마찬가지였습니다.열거 형, 구조 및 하위 클래스를 클래스로 그룹화하는 방법은 무엇입니까?

클래스에 이러한 요소를 그룹화하는 데 더 나은/표준 방법이 있습니까?

(참고 :이 C의 #/VB 태그되지만 어쩌면 같은 상황이 자바와 같은 다른 언어에 대한 존재) 분명히 합리적인 그룹은 별도의 소스 파일을 사용하는 것입니다

답변

3

.

몇 개의 스크린이 가득 찬 클래스의 경우, 그러한 클래스에 대한 별도의 소스 파일이 있어야합니다. 그렇지 않으면 소스 파일 내의 다양한 클래스 및 기타 항목을 찾는 것이 어려울 수 있습니다.

의미 상으로 관련이 있고 화면에 들어가기에 충분히 작은 열거 형 모음집의 경우 열거 형을 단일 파일에 넣는 것이 합리적입니다. 그러나 모든 파일 형식에 따라 파일 이름을 지정해야합니다. 그 enums 공유 중. 그들의 공통점을 설명하는 격렬한 이름이 나오기가 어려울 경우, 이것은 다시 분리해야한다는 표시 일 수 있습니다. (물론이 단락은 클래스와 구조체에 동일하게 적용되지만, 매우 작은 것들.) 심지어 중첩 클래스/구조체/열거 형은 C#으로 별도의 소스 파일에 배치 될 수 있음을

공지 사항 - 단지 외부 클래스를 선언 부분.

클래스의 관련 파생 클래스 (하위 클래스)이있는 경우 이러한 각 계층에 대한 하위 디렉토리를 만들 수도 있습니다. 예를 들어 Collections이라는 하위 디렉토리에 추상 기본 클래스에 대해 CollectionBase.cs이라는 파일이 있고 각 파생 클래스에 대해 별도의 소스 파일이있을 수 있습니다.

+0

네임 스페이스 바로 아래에있는 모든 클래스에 대해 별도의 소스 파일을 사용합니다. 크기가 작아도 서브 클래스는 작고 특별한 용도의 개체 인 경향이 있습니다. 그리고 대부분의 열거 형은 한 클래스의 한 클래스 나 메소드와 만 관계가 있습니다. VB에서는 부분 클래스도 옵션으로 제공되며 이는 유효 시점입니다. 부분 클래스는 WPF에만 의미가 있다고 생각했습니다. +1. –

+1

원래 의도 된 부분 클래스는 부적합합니다. 그것은 의미가있는 곳 어디에서나 사용할 수있는 범용 기능입니다. 확장 메서드 및 람다 식도 마찬가지입니다. LINQ 용으로 개발 된 것은 중요하지 않습니다. – Timwi

+0

클래스를 영역 대신 파일로 분할하는 것이 얼마나 다른지 궁금합니다. 지역에 대한 논쟁은 파일에 대해 거의 동일한 영향을 미칩니다. –