본문 바로가기
C#, MONO

c#의 Enum 멤버의 정보 추출

by gigasound 2021. 10. 6.


 

Enum 멤버의 이름 추출 또는 할당 번호 추출

C#에서 Enum을 사용하면 함수간에 변수를 전달할때 변수의 조건을 명시적으로 제한하기 때문에 코딩하기 매우 편리합니다. 혹은 조건에 따라 코딩을 분리하거나, 데이터의 내용을 제한적으로 할 수 있고, 내용을 특정 문자로 변경해서 사용하기 때문에 매우 좋습니다.

그런데 가끔 Enum의 멤버의 이름을 문자로 반환받거나, 할당된 번호를 사용하고 싶을때가 있습니다. 이 글에서는 Enum의 멤버에 대한 정보를 추출하는 방법을 알아보겠습니다.

실험용 Enum 만들기

두 개의 Enum을 만들겠습니다. 그리고 멤버 할당 번호를 숫자와 문자(char)로 해보겠습니다.

public enum TP{ 
  abc=0,
  efg,
  hij,
};
public enum TQ {
  abc = 'a',
  efg = 'b',
  hij = 'c',
};

 Enum 멤버를 배열로 반환 

Enum 멤버 모두를 배열로 반환 받습니다. 그리고 이를 활용해서 Enum 멤버의 수량을 얻을 수 있습니다.

//- enum 멤버를 모두 문자로 변경한 배얼 반환
var enum_list = Enum.GetNames(typeof(TP));
//- 배열을이용해서 enum의 멤버 수를 추출
int enum_size = Enum.GetNames(typeof(TP)).Length;

숫자를 주면 Enum 멤버를 문장으로 반환

아래 코드는 x에 숫자를 할당하면 Enum 멤버의 이름을 문장으로 반환합니다. 만약 숫자에 해당하는 멤버가 없으면 할당 숫자를 반환합니다. 

//- x에 해당하는 enum 멤버를 문자로 반환 
int x = 1;
TP tp = (TP)Enum.Parse(typeof(TP),x.ToString());
Console.WriteLine(tp.ToString());
//- x=4에 해당하는 enum 멤버가 없기 때문에 4를 반환
x = 4;
tp = (TP)Enum.Parse(typeof(TP),x.ToString());
Console.WriteLine(tp.ToString());

멤버에 해당하는 문자를 반환

멤버를 직접 선택해서, 멤버의 이름을 문장으로 반환합니다.

//- enum 멥버 하나를 문자로 변경
var enum_str = TP.abc.ToString();
//- 다른 방법
enum_str = Enum.GetName(typeof(TP),TP.efg);

멤버에 할당된 숫자를 반환

 //- enum 멤버에 할당된 숫자를 반환
 x = (int)Enum.Parse(typeof(TP),TP.abc.ToString());
 //- 더 간단한방법
 x = (int)TP.efg;

멤버에 할당된 문자(char) 반환

//- enum 멤버에 할당된 문자(char)의 ascii 값 반환
x = (int)Enum.Parse(typeof(TQ),TQ.abc.ToString());
//- 더 간단한 방법
x = (int)TQ.abc;
//- char로 반환
char c = (char)TQ.efg;

광고좀 꾹 눌러주시면 고맙겠습니다. 


위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.

기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.

'C#, MONO' 카테고리의 다른 글

c# 다항식 연산  (0) 2021.10.08
c#의 배열과 리스트  (0) 2021.10.06
테이블 컬럼 조작  (0) 2021.08.21
c#에서 Sqlite를 연결, 데이터 읽어 오기, 수정하기  (0) 2021.08.20
데이터의 추가 및 삭제  (0) 2021.08.20