요즘 인프런(Inflearn)에서 [C# 중급 강좌] 라이브러리 만들기 강의를 듣고있다.
몇 강의 안되는데, 좋은 정보를 많이 담고있는 것 같아서 굉장히 유용하다. 아래는 강의 정보.
[무료] [C# 중급 강좌] 라이브러리 만들기 - 인프런 | 강의
라이브러리를 구축하는 것은 프로그래머로서 재산을 축적하는 것과 같다고 생각합니다. 미국 캘리포니아 에서 프로그래머로 활동중이신 Alongside Y 님이 알려주는 C# 강좌 입니다., - 강의 소개 |
www.inflearn.com
오늘은 강의 중간에 알게된 키워드 enum(열거형) 에 대해서 정리해보려고 한다.
처음 알게된 개념이기도 하고, 사용법도 내게는 신박했기 때문!
enum(열거형)이란?
enum은 열거형 상수(constant)를 표현하기 위한 것으로, 기본 정수 숫자 형식의 명명된 상수 집합에 의해 정의되는 값 형식이다. 열거형을 정의하려면 enum 키워드를 정의하고 enum의 이름을 지정하면 된다.
예로서 Season이라는 집합을 생성하자면 아래와 같이 정의할 수 있을 것이다.
public enum Season {
Spring
Summer
Autumn
Winter
}
각 계절에 대한 정보는 아래와 같은 방식으로 불러올 수 있다.
Season.Summer
이를 Console.WriteLine 으로 출력하면 Summer가 출력되는 신기한 현상을 목격할 수 있다. 이게 어떻게 가능한가 하면..
열거형을 활용하면 상수 숫자들을 보다 의미있는 단어들로 표현할 수 있어서 프로그램을 읽기 쉽게 해준다고 한다. (여기에서 Boxing, Unboxing 개념이 포함되는 것 같은데, 관련 개념은 다음에 보다 더 자세히 다루어보려고 한다.)
아래는 enum에 대한 특징이다.
- enum의 각 요소는 별도의 지정이 없이는 첫번째 요소가 0, 두번째 요소가 1, 세번째 요소가 2 ... 와 같이 1씩 증가된 값을 할당받게 된다. 이는 Default로 정의되는 값이며 개발자가 각 요소별로 의미있는 번호를 지정해 줄 수도 있다.
- enum문은 Class 내부, 혹은 Namespace 내부에서만 선언될 수 있다. Method 내부에서나 혹은 Property 내부에서는 선언될 수 없다.
- enum 타입은 숫자형 타입과 호환이 가능하다. enum 타입 변수를 int로 캐스팅할 수 있다. (그럼 enum의 숫자값을 얻는다.)
아래는 enum의 활용 예시 일부이다.
// enum 선언
enum City
{
Seoul, // 0
Daejun, // 1
Busan = 5, // 5
Jeju = 10 // 10
}
static void Main(string[] args)
{
// enum 타입 변수 myCity 선언
City myCity;
// myCity에 City.Seoul값을 대입
myCity = City.Seoul;
if (myCity == City.Seoul) // enum값 비교
{
Console.WriteLine("Welcome to Seoul");
}
}
다음번에는 enum의 Flag 개념과 Boxing&UnBoxing 에 대해서 좀 더 알아봐야겠다.
Reference
'기술공부 > 언어' 카테고리의 다른 글
[Node.js] Express app에서 정적 라우트 경로값을 동적으로 변경하기 (0) | 2023.06.16 |
---|---|
[javascript] Object array 에서 특정 key-value를 만족하는 feature만 추출하기 (0) | 2023.03.03 |
[JavaScript] Array 중복 제거 (0) | 2023.02.21 |
[C#] List slicing - Skip과 Take (0) | 2022.04.02 |
[C#] List정렬 - OrderBy (0) | 2022.03.31 |