Enum 정의에 대하여
Coding Style에 있어 Enum 정의에 대해서 정리해 본다.
Enum 을 정의할 때, 사용하는 클래스 안에서 정의하여 사용하곤 했다. 그런데 그 클래스에서 사용하는 Enum 형이 많아지다보니 해당 클래스의 코드가 상당히 길어져 코드를 보기 상당히 불편해 졌다. 어떻게 사용해야 할까 생각하다가 친구로 부터 도움을 받았다.
1. Enum 타입만 정의할 파일을 생성한다.
사용하려는 클래스가 정의된 파일과 분리된 파일에 정의하므로 코드를 간결하게 유지할 수 있다.
2. 네임스페이스 하위에 바로 작성한다.
새로운 파일에 클래스를 새로 정의하여 클래스 멤버로 Enum을 정의할 수도 있다. 이 경우 Enum 접근을 위한 코드가 조금 더 길어질 수 있는 단점은 있다.
네임스페이스 하위에 바로 Enum 을 정의하여 사용할 수 있다. 네임스페이스는 다른 타입들과 중복되지 않도록 특정한 이름을 주어 사용하는것이 좋다.
Enum을 정의할 때 두가지 접근 지정자를 사용할 수 있다.
● internal
● public
Enum 타입이 클래스 내부에 지정된 것이 아니므로 외부에서 Enum을 정의한 어셈블리로 접근할 때 Enum의 가시성에 대한 지정자만 사용 가능하다. internal은 어셈블리 내부에서만 사용할 수 있고, public 은 어셈블리 외부에서도 접근하여 사용 가능하다.
namespace MyApp.Common
{
/// <summary>
/// 바이로봇 정책의 하위 아이템 타입
/// </summary>
internal enum ItemType
{
/// <summary>
/// 알 수 없음
/// </summary>
Unknown = 0,
...
}
}