• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] C# - enums (이넘) - 상수 열거형 클래스

11,365  

목차

  1. enum 정의
  2. enum과 class와의 유사점/차이점
  3. enum values (값)
  4. enum 예제1 - Class 안의 enum
  5. enum 예제2 - Switch 구문 안의 enum
  6. enum 예제3 - enum 이용한 반복문

 

enum 정의


상수를 콤마( , )로 모아놓은 열거형 "클래스".

 

※ 변경 불가한 읽기 전용 깂 (예: 날짜, 색깔 등) 모아 관리 시 유용. 

※ 특히, int, bytes 등 정수형 상수 정의 시 유용.

 


[특징]

 

1. enum : enumerations (= 구체적으로 나열) 의미.

2. const 키워드로 정의하는 상수처럼 변경 불가.

3. Class와 유사점・차이점 있음. (아래에서 설명.)

4. 각 상수에 대해서 개별 속성값 지정도 가능.

5. 다른 Class 안에서 사용 가능. (예제1)

6. Switch 구문 안에서도 사용 가능. (예제2)

6. 반복문에서도 사용 가능. (예제3)

 


[예제] Program.cs

 

using System;

namespace Homzzang

{

  enum Code

  {

    HTML,

    CSS,

    JS

  }

  class Program

  {

    static void Main(string[] args)

    {

      Code myCode = Code.CSS;

      Console.WriteLine(myCode);

    }

  }

}

 

결과값: CSS

 

enum과 class와의 유사점/차이점

[Class와 유사점]

 

(속성・메서드・생성자) 보유 가능.

 


[Class와 차이점]

 

1.

enum 상수들은 public, static, const 성격 띔.

즉, 변경 불가. = 덮어쓰기 불가. = 재정의 불가.

 

2.

enum은 객체 생성 불가.

 

 

enum values (값)

 

1.

enum 안 각 요소는 0부터 정수 색인 배정. 

 

2.

enum 안 요소에서 정수 얻으려면, 

명시적으로 int 자료형으로 변환해야 함. (예제1)

 

3.

enum 안 특정 요소에 사용자 정의 정수 배정 가능하며,

그에 따라 그 이후 요소 색인은 자동 업그레이드 됨. (예제2)

 


[예제1]

 

using System;

namespace Homzzang

{

  class Program

  {

    enum Months

    {

      Jan, // 0

      Feb, // 1

      Mar, // 2

      Apr, // 3

      May, // 4

      Jun, // 5

      Jul  // 6

    }

    static void Main(string[] args)

    {

      int num = (int) Months.Feb;

      Console.WriteLine(num);

    }

  }

}

 


[예제2] 사용자 정의 정수 배정 가능하며, 그 이후는 자동 증가.

 

using System;

namespace Homzzang

{

  class Program

  {

    enum Months

    {

      Jan, // 0

      Feb=2, // 2

      Mar, // 3

      Apr, // 4

      May, // 5

      Jun, // 6

      Jul  // 7

    }

    static void Main(string[] args)

    {

      int num = (int) Months.May;

      Console.WriteLine(num);

    }

  }

}


결과값: 5

 

enum 예제1 - Class 안의 enum

 

enum은 다른 클래스 안에서도 사용 가능.

 


[예제] Program.cs 

 

using System;

namespace Homzzang

{

  class Program

  {

    enum Code

    {

      HTML,

      CSS,

      JS

    }

    static void Main(string[] args)

    {

      Code myCode = Code.CSS;

      Console.WriteLine(myCode);

    }

  }

}

 

결과값: CSS

 

enum 예제2 - Switch 구문 안의 enum

 

enum은 switch 구문 안에서도 사용 가능.

※ 상응하는 값을 찾기 위해 자주 사용됨.

 


[예제] Program.css

 

using System;

namespace Homzzang

{

  class Program

  {

    enum Code

    {

      HTML,

      CSS,

      JS

    }

    static void Main(string[] args)

    {

      Code myCode = Code.CSS;

      switch(myCode) 

      {

        case Code.HTML:

          Console.WriteLine("HTML : 뼈대");

          break;

        case Code.CSS:

          Console.WriteLine("CSS : 디자인");

          break;

        case Code.JS:

          Console.WriteLine("JS : 기능");

          break;

      }    

    }

  }

}


 

결과값:

CSS : 디자인

 

enum 예제3 - enum 이용한 반복문

 

foreach (... in ...) 반복문 이용해 접근 가능. 

Enum.GetValues() 메서드는 enum 안 각 상수에 접근.

※ 반복문 돌릴 때  아주 유용.

 


[구문]

 

foreach (enum var in Enum.GetValues(typeof(enum)))

   var 출력.

}

 

PS.

※ enum : enum명.

※ var : 변수명. (※ enum 안의 각 상수를 담는 변수)


[예제] Program.cs

 

using System;

namespace Homzzang

{

    class Program

    {

        enum Code

        {

            HTML,

            CSS,

            JS

        }

        static void Main(string[] args)

        {

            foreach (Code i in Enum.GetValues(typeof(Code)))

            {

                Console.WriteLine(i);

            }

        }

    }

}

 

결과값:

HTML

CSS

JS



분류 제목
basic C# - Home (입문) - 추천 링크
basic C# - Intro (소개) - 용도・특징
basic C# - Start (시작) - Visual Studio Community 설치/실행/세팅
basic C# - Syntax (구문)
basic C# - Output (출력)
basic C# - New Lines (줄바꿈)
basic C# - Comment (주석)
basic C# - Variable (변수)
basic C# - User Input (사용자 입력)
basic C# - Data Type (데이터 타입) - 자료형 (종류 + 변환)
basic C# - Operator (연산자)
basic C# - String (문자열)
basic C# - Math (수학)
basic C# - Boolean (참거짓)
basic C# - If ... Else - (이프 조건문)
basic C# - Switch (스위치 조건문)
basic C# - While Loop (와일 반복문)
basic C# - For Loop (포 반복문)
basic C# - Break/Continue (브레이크/컨티뉴) 키워드 - 반복문 빠져나가기 / 특정 조건 건너띄기
basic C# - Arrays (배열)
1/2
목록
찾아주셔서 감사합니다. Since 2012