[C#] 간단한 Enum 사용법과 활용 예제 (Status 관리하기)


이번 포스팅에서는 Enum의 몇 가지 간단한 메소드와 Enum을 활용한 DataTable에서의 Status 플래그 관리 기법에 대해 설명합니다.


1. Enum과 메소드

[소스코드]
public enum Colors
{
 Red = 0,
 Yellow,
 Green,
 Blue
}


static void Main(string[] args)
{

 var color =  (Colors)Enum.Parse(typeof(Colors), "Red");

 var colorIdx = (int)Colors.Red;

 var colorNames = Enum.GetNames(typeof(Colors));
 
}

[문법]

1) String값에 맞는 Enum 명 가져오기 (ex : color)
  ("Enum명")Enum.Parse(typeof("Enum명"), "Enum인자");

2) Enum Int 타입 반환 (ex : colorIdx)
  (int)("Enum명").("인자"); 

3) Enum 구성인자 이름 가져오기 
  Enum.GetNames (typeof("Enum명"));            (Enum.GetName으로 잘못쓰지 않도록 주의)


[결과]






2. 사용 예제

 : DataTable에 Status Column을 추가하고, 상태값이 "Complete"인 Row의 이름을 출력하는 예제

[소스코드]
class Program
{
 public enum Status
 {
  Complete = 0,
  Error,
  Cancle,
  Wait,
  Running
 }

 static void Main(string[] args)
 {
  DataTable dt = new DataTable();
  dt.Columns.Add(new DataColumn("STATUS"));
  dt.Columns.Add(new DataColumn("NAME"));


  DataRow dr01 = dt.NewRow();
  dr01["STATUS"] = "Wait";
  dr01["NAME"] = "Alpha";

  DataRow dr02 = dt.NewRow();
  dr02["STATUS"] = "Complete";
  dr02["NAME"] = "Beta";

  DataRow dr03 = dt.NewRow();
  dr03["STATUS"] = "Running";
  dr03["NAME"] = "Gamma";

  DataRow dr04 = dt.NewRow();
  dr04["STATUS"] = "Error";
  dr04["NAME"] = "Delta";

  dt.Rows.Add(dr01);
  dt.Rows.Add(dr02);
  dt.Rows.Add(dr03);
  dt.Rows.Add(dr04);

  for(int idx = 0; idx < dt.Rows.Count; idx++)
  {
   var status =  (Status)Enum.Parse(typeof(Status), dt.Rows[idx]["STATUS"].ToString());

   if(status == Status.Complete)  
    Console.WriteLine(string.Format("Complete Object Name : {0}", dt.Rows[idx]["NAME"].ToString()));
  }

  Console.ReadLine();
 }
}

[생성 테이블]

[결과]

0 댓글