2009-06-18 3 views
0

특정 프로젝트 별 값을 표준 System.Drawing.Color 열거 형에 매핑하는 열거 형을 설정하려고합니다.C# .NET 3.5에서 열거 형을 다른 열거 형에 매핑하는 방법이 있습니까?

public enum SessionColors 
{ 
    Highlights = Color.HotPink, 
    Overlays = Color.LightBlue, 
    Redaction = Color.Black 
} 

목표는 그렇게 나는 아직 내가 하이라이트로 식별 것들에 대한 SessionColors.Highlights을 사용할 수있는 것입니다, 나는을 변경할 수 있습니다 여기에

는 내가하고 싶은 일의 생각 열거 맵핑은 나중에 모든 색상에 적용됩니다.

나는 Color.HotPink 등의 값을 찾을 수 있다는 것을 알았지 만 그 값을 사용했지만 분명하지는 않습니다. 밖에 있는게 더 좋은 생각이야?

답변

7

그냥 대중 상수와 함께 할 :

public static class SessionColors 
{ 
    public static readonly Color Highlights = Color.HotPink; 
    public static readonly Color Overlays = Color.LightBlue; 
    public static readonly Color Redaction = Color.Black; 
} 
+4

내 대답을 게시하는 대신이 기능을 향상 시키려면 자신의 열거 형에있는 열거 형 값을 다른 열거 형의 값으로 매핑하면됩니다. 한스 (Hans)가 말했듯이 여기서 다루는 것은 열거 형 값이 아니며, Color (구조체)입니다. –

+0

방금 ​​Color가 열거 형이라고 가정하고 실제로 확인하지 않았습니다. 이 솔루션은 훌륭하게 작동합니다. –

+1

이 문제에 대한 상수가 아닌 정적 읽기 전용 필드를 사용하면 얻을 수있는 이점을 알 수 없습니다. –

3

Colors.HotPink 그것은 색상 값을 반환하는 정적 클래스 색상의 정적 속성입니다, 열거 값이 아닙니다. 그리고 그 Color 값은 정수가 아니라 구조체입니다.

열거 형의 기본 값으로 Color를 사용할 수 없으므로 정수형으로 제한됩니다.

2

저는 개인적으로 열거 형 대신 정적 클래스의 Color 속성을 사용합니다. 많은 이점이 있지만 가장 유익한 것은 재 컴파일을 강제하지 않고 런타임에 app.config (또는 다른 구성 소스)에서 색상을로드 할 수 있다는 것입니다.

관련 문제