C#/C#200제
[C#] 6일차 - 32. 열거형 enum
반나무
2021. 1. 21. 10:42
열거형은 서로 관련 있는 상수들의 집합을 정의한 것.
숫자에 특정한 명칭을 붙여 쉽게 이해할 수 있는 용도로 사용된다
원소로 기술된 명칭을 기호 상수라고 부르며, 순서에 따라 default=0 부터 순서대로 정수값을 갖게 된다.
enum Day {Sat, Sun, Mon, Tue, Wed, Thu, Fri}
기호상수의 값을 별도로 지정할 수 도 있다.
enum Day { Sat=1, Sun, Mon, Tue, Wed, Thu, Fri=10 };
열거형 값을 정수로 대입할 떄는 다음과 같이 (int)로 캐스팅한다.
int x = (int)Day.Sun;
enum문은 class안이나 namespace내에서만 선언될 수 있다.
다른곳에서는 Enum클래스에서 제공하는 GetValues()나 GetNames()를 가지고 꺼내 사용한다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A032_Enum
{
class Program
{
enum Size { Short, Tall, Grande, Venti };
static int[] price = { 3300, 3800, 4300, 4800 };
enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
enum Coffee { Short = 3300, Tall = 3800, Grande = 4300, Venti = 4800 };
static void Main(string[] args)
{
Console.WriteLine("커피 가격표");
for (int i = 0; i < 4; i++)
{
if (i == (int)Size.Short)
Console.WriteLine("{0,10} : {1:C}", Size.Short, price[i]);
else if(i == (int)Size.Tall)
Console.WriteLine("{0,10} : {1:C}", Size.Tall, price[i]);
else if (i == (int)Size.Grande)
Console.WriteLine("{0,10} : {1:C}", Size.Grande, price[i]);
else if (i == (int)Size.Venti)
Console.WriteLine("{0,10} : {1:C}", Size.Venti, price[i]);
}
Console.WriteLine("\n 커피 가격표(Enum interation)");
foreach(var size in Enum.GetValues(typeof(Size)))
{
Console.WriteLine("{0,10} : {1:C}", size, price[(int)size]);
}
Console.WriteLine("\n Colors Enum interation");
foreach (var color in Enum.GetValues(typeof(Colors)))
{
Console.WriteLine("{0,10} : {1}", color, Convert.ToInt32(color));
}
Console.WriteLine("\n 커피 가격표(Enum iteration with value)");
foreach (var coffee in Enum.GetValues(typeof(Coffee)))
{
Console.WriteLine("{0,10} : {1:C}", coffee, Convert.ToInt32(coffee));
}
}
}
}
반응형