반응형
열거(Enums)
열거(Enum)는 상수(변경 불가능한 변수)의 그룹을 정의할 때 사용하는 특별한 “클래스”다. 게임 개발에서 로직을 구현할 때도 자주 사용된다. 예를 들어 난이도 설정, 게임 상태 등을 구현할 때 사용된다. 예시1은 난이도 설정에 대한 간단한 로직이다.
예시1:
class Program
{
enum Level
{
Low,
Medium,
High
}
static void Main(string[] args)
{
Level myVar = Level.Medium;
Console.WriteLine(myVar);
}
}
// 출력 : Medium
// 출처 : w3schools
열거형에는 값도 설정할 수 있다
문자열의 인덱스 값과 마찬가지로 열거형도 첫 번째 항목의 값은 0으로 시작한다. 한 가지 신경써야 하는 점은 정수값을 얻기 위해서 명시적 변환이 필요하다는 점이다.
예시2:
enum Months
{
January, // 0
February, // 1
March, // 2
April, // 3
May, // 4
June, // 5
July // 6
}
static void Main(string[] args)
{
int myNum = (int) Months.April; // int로 명시적 변환
Console.WriteLine(myNum);
}
// 출력 : 3
// 출처 : w3schools
또한 열거형 값을 임의로 할당할 수 도 있다.
예시3:
enum Months
{
January, // 0
February, // 1
March=6, // 6
April, // 7
May, // 8
June, // 9
July // 10
}
static void Main(string[] args)
{
int myNum = (int) Months.April;
Console.WriteLine(myNum);
}
// 출력 : 7
// 출처 : w3schools
예시3
에서 March의 값을 6으로 변경해주었다. 그 뒤의 값들도 순차적으로 변화하는 것을 확인할 수 있다. 변경된 값만 바뀌는 것이 아니라 그 뒤의 값들도 오름차순으로 값이 바뀐다는 점을 유의하자.
열거형과 Switch
열거형은 스위치 문과 함께 자주 사용된다고 한다.
enum Level
{
Low,
Medium,
High
}
static void Main(string[] args)
{
Level myVar = Level.Medium;
switch(myVar)
{
case Level.Low:
Console.WriteLine("Low level");
break;
case Level.Medium:
Console.WriteLine("Medium level");
break;
case Level.High:
Console.WriteLine("High level");
break;
}
}
// 출력 : Medium level
요약정리
- 열거형은 변하지 않는 값(상수)들의 그룹을 정의할 때 사용하는 특수 클래스다.
- 열거형의 항목들은 0부터 시작하는 값을 가지고 있으며, 별도로 설정할 수 도 있다.
반응형
'게임 & 게임개발 > C# 기초' 카테고리의 다른 글
[C#기초] 인터페이스(Interfaces)란 무엇인가 (2) | 2024.04.25 |
---|---|
[C#기초] 추상(abstract) 클래스와 메서드 (0) | 2024.04.25 |
[C#기초] 상속(Inheritance)과 다형성(Polymorphism) (0) | 2024.04.24 |
[C#기초] 프로퍼티(Property)와 Get, Set 메서드 💊 (0) | 2024.04.23 |
[C#기초] 접근 제한자(Access Modifier)란 무엇일까? (0) | 2024.04.22 |