¼Ò¼³°°ÀºC#  Á¦2°­ÀÇ Å¬·¡½ºÀÇ ±âº»¹è°æ  21. ¿­°ÅÇü  

 

2.21 ¿­°ÅÇü(Enums)

 

 

 

C#¿¡¼­´Â ¿­°ÅÇü(Enumeration)À̶ó ºÒ¸®´Â µ¶Æ¯ÇÑ ³ðÀÌ Á¸ÀçÇÕ´Ï´Ù. ¹è¿­°ú ºñ½ÁÇÑ ¸éµµ ÀÖÁö¸¸ ¹è¿­Àº ¾Æ´Ï°í, º¤ÅͶó°í ¸»Çϱ⵵ ¾Ö¸ÅÇÑ ¼º°ÝÀ» Áö´Ï°í ÀÖ½À´Ï´Ù. ±×·¡¼­ ¿­°ÅÇüÀ̶ó°í µ¶¸³ÀûÀÎ À̸§À» °¡Áø ³ðÀÌÁÒ. ¿­°ÅÇüÀÇ Á¤ÀǸ¦ ¾Ë¾Æº¼±î¿ä?

 

¢Ã ¿­°Å(enum/enumeration)

q               System.Enum¿¡¼­ »ó¼ÓµÇ¾î ³»ºÎ ±âº» Çü½Ä °ª¿¡ ´ëÇÑ º°ÄªÀ» Á¦°øÇϴ Ưº°ÇÑ À¯ÇüÀÇ °ªÅ¸ÀÔÀÔ´Ï´Ù. ¿­°ÅÇüÀº À̸§, ³»ºÎ Çü½Ä ¹× Çʵå ÁýÇÕÀ» °¡Áö¸ç, ³»ºÎ Çü½ÄÀº ±âº» Á¦°øµÇ´Â ºÎÈ£ ÀÖ´Â Á¤¼ö ¹× ºÎÈ£ ¾ø´Â Á¤¼ö Çü½Ä(Byte, Int32, UInt64 µî) Áß Çϳª¿©¾ß ÇÕ´Ï´Ù. °¢ Çʵå´Â »ó¼ö¸¦ ³ªÅ¸³»´Â Á¤Àû ¸®ÅÍ·² ÇʵåÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ »ç¿ëÇÏ´Â °¢ ¾ð¾î´Â °¢ Çʵ忡 ³»ºÎ Çü½ÄÀÇ Æ¯Á¤ °ªÀ» ÇÒ´çÇÕ´Ï´Ù.

 

ÀÌ Á¤ÀÇ´Â .NET Framework SDK ¼³¸í¼­¿¡¼­ °¡Á®¿Â ³»¿ëÀÔ´Ï´Ù. Á¤ÀǸ¸ º¸¸é ±²ÀåÈ÷ ¾î·Á¿î ³ð °°±º¿ä. ¿¹Á¦¸¦ º¸¸é ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿¹Á¦¸¦ º¸½ÃÁÒ.

 

¿­°ÅÇüÀÇ Æ¯Â¡ 1

n                 System.Enum

n                 public abstract class Enum : IComparable, IFormattable, IConvertible

n                 À̸§À» °¡Áö´Â Á¤Àû Á¤¼öÇü »ó¼öÀÌ´Ù.

n                 »ó¼öÀ̹ǷΠ°ªÀÌ Çѹø ¼³Á¤µÇ¸é º¯°æÇÒ ¼ö ¾ø´Ù.

 

&

EnumTest.cs

Ü ¿­°ÅÇüÀ» Å×½ºÆ®ÇÏ´Â ¿¹Á¦

using System;

class EnumTest{

          enum Numbers{one, two, three, four, five, six, seven};

        public static void Main(){

                      for(Numbers i=Numbers.one; i<=Numbers.seven; i++)

                                         Console.Write(i+"="+(int)i+"\t");

              }//main

}//class

C:\C#Example\02>csc EnumTest.cs

C:\C#Example\02>EnumTest

one=0   two=1   three=2   four=3   five=4   six=5   seven=6

 

±×·³ ¿¹Á¦¸¦ º¸¸é¼­ ¼³¸íÀ» µå¸®°Ú½À´Ï´Ù. ¸ÕÀú Numbers ¶ó´Â ¿­°ÅÇüÀ» ¼±¾ðÇÏ¿´½À´Ï´Ù.

 

n                               enum Numbers {one , two , three , four , five , six , seven};

 

¿­°ÅÇüÀ» ¼±¾ðÇÒ ¶§ »ç¿ëÇϴ Ű¿öµå´Â enumÀÔ´Ï´Ù. ÀÌ Å°¿öµå¸¦ »ç¿ëÇÏ´Â Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

¿­°ÅÇüÀ» ¼±¾ðÇÏ´Â ¹æ¹ý

enum name { ¿­°ÅÇü ¸®½ºÆ® };

Ç¥ 2-10 ¿­°ÅÇüÀ» ¼±¾ðÇÏ´Â ¹æ¹ý

 

À§¿Í °°Àº ¹æ¹ýÀ¸·Î ¿­°ÅÇüÀ» ¼±¾ðÇÕ´Ï´Ù. nameÀº ¿­°ÅÇüÀ» ´ëÇ¥ÇÏ´Â À̸§ÀÔ´Ï´Ù. ¿¹Á¦¿¡¼­´Â Numbers°¡ »ç¿ëµÇ¾ú½À´Ï´Ù. ¿©±â±îÁö´Â ÀÌ»óÇÑ °ÍÀº ¾ø½À´Ï´Ù. ÀÌÁ¦ ÀÌ»óÇÑ °ÍÀÌ ³ª¿É´Ï´Ù.

 

n              for(Numbers i=Numbers.one; i<=Numbers.seven; i++)

n                       Console.Write(i+"="+(int)i+"\t");                                

 

ù¹øÂ° i´Â ¿­°ÅÇüÀÇ ¸â¹öµéÀ» ¶æÇÕ´Ï´Ù. ÀÌ ¸â¹ö´Â ¹®ÀÚ¿­·Î ÀνĵDZ⠶§¹®¿¡ ¹Ù·Î »ç¿ëÇÏ·Á°í ÇÑ´Ù¸é À§ÀÇ ¸í·É ÇÁ·ÒÇÁÆ® â¿¡ Ãâ·ÂµÈ °Íó·³ ¹®ÀڷΠ󸮵˴ϴÙ. µû¶ó¼­ ¿­°ÅÇüÀÇ ¸â¹ö¸¦ ¼ö·Î »ç¿ëÇÏ·Á¸é ¹Ýµå½Ã Çüº¯È¯À» ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ¿­°ÅÇüÀº ±âº»ÀûÀ¸·Î Á¤¼öÇü »ó¼ö·Î ¼³Á¤µË´Ï´Ù. µû¶ó¼­ µÎ¹øÂ°ÀÇ i ó·³ (int)¸¦ »ç¿ëÇÏ¿© intÇüÀ¸·Î Çüº¯È¯À» ÇÏ¸é ºñ·Î¼Ò¹®ÀÚ¿­¿¡¼­ Á¤¼öÇü »ó¼ö°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±×·±µ¥ ÀÌ Á¤¼öÇü »ó¼öÀÇ °ªÀº óÀ½ ³ª¿À´Â ³ðÀÌ 0ÀÇ °ªÀ» °®°í ³ª¸ÓÁö´Â 1¾¿ Áõ°¡ÇÏ´Â ¼ºÁúÀÌ ÀÖ½À´Ï´Ù. Áï Numbers.oneÀº 0À̰í, Numbers.sevenÀº 6ÀÌ µÇ´Â °ÍÀÔ´Ï´Ù. ±×·³ Á¶±Ý ´Ù¸¥ ¿¹Á¦¸¦ º¸¸é¼­ °è¼Ó ¼³¸í µå¸®°Ú½À´Ï´Ù.

 

¿­°ÅÇüÀÇ Æ¯Â¡ 2

n          ¿­°ÅÇüÀÇ µðÆúÆ®ÇüÀº intÇüÀÌ´Ù.

n      ¸â¹öµéÀÇ ÃʱⰪÀº 0ºÎÅÍ ½ÃÀÛÇØ¼­ 1¾¿ Áõ°¡ÇÑ´Ù.

 

&

EnumTest1.cs

Ü ¿­°ÅÇüÀÇ °ªÀ» ¼³Á¤ÇÏ´Â ¿¹Á¦

using System;

class EnumTest1{

                enum Numbers{one, two=2, three, four, five, six, seven};

          public static void Main(){

                      int[] num=new int[7];

                      num[0]=(int)Numbers.one;       num[1]=(int)Numbers.two;

                      num[2]=(int)Numbers.three;     num[3]=(int)Numbers.four;

                      num[4]=(int)Numbers.five;       num[5]=(int)Numbers.six;

                      num[6]=(int)Numbers.seven;

                      for(int i=0; i<7; i++)

                                       Console.Write(num[i]+"\t");

                 }//main

}//class

C:\C#Example\12>csc EnumTest1.cs

C:\C#Example\12>EnumTest1

0       2       3       4       5       6       7

 

¾Õ¿¡¼­ Å×½ºÆ®ÇÑ ¿¹Á¦¿¡¼­ ¾à°£ ¼öÁ¤ÇÑ ¿¹Á¦ÀÔ´Ï´Ù. ¹Ù·Î ¿­°ÅÇüÀ» ¼±¾ðÇØÁÖ´Â ºÎºÐÀ» Á¶±Ý °íÃÄ ÁÖ¾ú½À´Ï´Ù.

 

n                 enum Numbers {one, two=2, three, four, five, six, seven};

 

two = 2 ¶ó°í °ªÀ» ¼³Á¤ÇØ ÁÖ¾ú½À´Ï´Ù. ±×·¯ÀÚ °á°ú¿¡¼­ seven = 7 À̶ó´Â °á°ú°¡ ³ª¿Ô½À´Ï´Ù. ¿©±â¿¡¼­ ¿­°ÅÇüÀÇ µÎ¹øÂ° Ư¡ÀÌ ³ª¿É´Ï´Ù. °ªÀ» ¼³Á¤ÇØÁÖ¸é ¸â¹ö´Â ±× °ªÀ» °®°í ±× ´ÙÀ½ ¸â¹ö´Â ¼³Á¤µÈ °ª¿¡¼­ 1¾¿ Áõ°¡ÇÏ´Â °ªÀ» °®°Ô µË´Ï´Ù.

 

 

¿­°ÅÇü¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â Çü

byte, sbyte, short, ushort, int, uint, long, ulong

Ç¥ 2-11 ¿­°ÅÇü¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â Çü

 

¿­°ÅÇüÀÇ Æ¯Â¡ 3

n                 Áß°£°ªÀ» »õ·Î ¼³Á¤Çϸé ÀÌÈÄÀÇ ¸â¹öµéÀÇ °ªÀº º¯°æµÈ °ª¿¡¼­ºÎÅÍ 1¾¿ Áõ°¡ÇÑ´Ù.

 

¿­°ÅÇü¿¡¼­ ÇÒ´çÇÒ ¼ö ÀÖ´Â °ªÀº char¸¦ Á¦¿ÜÇÑ Á¤¼öÇü °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ¸·Î ¿­°ÅÇü¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸¾Ò½À´Ï´Ù. ¿­°ÅÇüÀº óÀ½ °ªÀÌ 0ºÎÅÍ ½ÃÀÛÇϰí, 1¾¿ Áõ°¡ ÇÑ´Ù´Â »ç½Ç°ú, Áß°£¿¡ °ªÀ» ¼³Á¤ÇØ ÁÖ¸é ±× ´ÙÀ½ÀÇ °ªÀº ¼³Á¤µÈ °ª¿¡¼­ 1¾¿ Áõ°¡ ÇÑ´Ù´Â »ç½Ç, ±×¸®°í Çü º¯È¯À» ÇØÁÖ¾î¾ß ÇÑ´Ù´Â »ç½Ç¸¸ ¾Ë°í ÀÖÀ¸¸é ±×¸® ¾î·Á¿ï °Í ¾ø´Â ³ðÀÔ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦2°­ÀÇ
ÀúÀÚ:ÃÖ¿µ°ü