-
[C#] - Enum 사용하기.NET/CSharp 2017. 8. 19. 10:59
자바에서는 Enum에 필요한 변수를 선언하고 바로 접근해서 사용할 수 있습니다.
public enum BackStyleType { /** * 보통 */ Normal((short) 0), /** * 배경 투명 */ Transparent((short) 1); /** * 열거형에 해당하는 정수값 */ private short value; private BackStyleType(short value) { this.value = value; } public short getValue() { return value; } public static BackStyleType valueOf(short value) { for (BackStyleType bst : values()) { if (bst.value == value) { return bst; } } return Transparent; } }
public class Main { public static void main(String[] args) { System.out.println("BackStyleType.Normal Value : " + BackStyleType.Normal.getValue()); } }
BackStyleType.Normal Value : 0
C# 에서는 사용하려면 어덯게 해야할까? 아래 CodeProject 에서 정보를 얻었다.
EnumPattern
https://www.codeproject.com/Articles/38666/Enum-Pattern.aspx
EnumAttribute, EnumExtension 가 클래스라이브러리 형태로 있어 참조하여 사용할 경우 Using 선언 필요하다. 필요에 따라 EnumAttribute 클래스를 상속하여 다른 Attribute를 추가하여 사용할 수 있으며 그에 따른 EnumAttribute 클래스를 상속한 클래스를 리턴하는 GetAttribute 확장 메서드를 포함하고 있는 클래스를 정의 해야합니다.
namespace EnumPattern { [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public class EnumAttribute : Attribute { public EnumAttribute() { } public short Value { get; set; } } public static class EnumExtension { public static EnumAttribute GetAttrribute(this Enum value) { Type type = value.GetType(); FieldInfo fieldInfo = type.GetField(value.ToString()); var attributes = (EnumAttribute[])fieldInfo.GetCustomAttributes(typeof(EnumAttribute), false); return attributes.Length > 0 ? attributes[0] : null; } } public enum BackStyleType { [EnumAttribute(Value = 0)] Normal, [EnumAttribute(Value = 1)] Transparent, } class Program { static void Main(string[] args) { Console.WriteLine("BackStyleType.Normal : {0}", BackStyleType.Normal.GetAttrribute().Value); } } }
BackStyleType.Normal Value : 0
'.NET > CSharp' 카테고리의 다른 글
[C#] - WinForm 컨트롤 사용하기 (0) 2018.08.26 [C#] - 실행중인 파일 디렉토리 얻기 (0) 2018.07.18 [C#] - WinForm ActiveX 컨트롤 만들기 (1) 2018.06.09 [C#] - WinForm 특정 사이즈 컨트롤 만들기 (0) 2017.10.21 [C#] - WinForm TextBox 유효한 숫자만 입력받게 하기 (0) 2017.08.25