3-3-1.¿­°ÅÇü

¿­°ÅÇüÀº °¡´ÉÇÑ °ªÀÇ ÁýÇÕÀ» Á¤ÀÇÇÏ´Â »ç¿ëÀÚ Á¤ÀÇÇü ŸÀÔÀÌ´Ù. º¯¼ö°¡ °¡Áú ¼ö ÀÖ´Â °ªÀÌ Æ¯Á¤ À¯ÇÑ ÁýÇÕÀ¸·Î Á¦ÇÑµÉ ¶§ »ç¿ëÇÑ´Ù. °ª¿¡ À̸§À» ÁÙ ¼ö ÀÖ¾î °¡µ¶¼º¿¡ À¯¸®ÇÏ¸ç ¾û¶×ÇÑ °ªÀ» ´ëÀÔÇÒ À§ÇèÀÌ ¾ø¾î ¾ÈÀüÇÏ´Ù. ¿­°ÅÇü º¯¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¿­°Å ŸÀÔÀ» ¸ÕÀú Á¤ÀÇÇÑ´Ù. enum Å°¿öµå ´ÙÀ½¿¡ ¿­°Å ŸÀÔÀÇ À̸§À» ¾²°í { } °ýÈ£ ¾È¿¡ ¿­°Å ¸â¹ö¸¦ ÄÞ¸¶·Î ±¸ºÐÇÏ¿© ³ª¿­ÇÑ´Ù. ´ÙÀ½Àº ¹æÇâÀ» Ç¥ÇöÇÏ´Â ¿­°Å ŸÀÔ OriginÀ» Á¤ÀÇÇÑ´Ù. ŸÀÔ Á¤Àǹ®Àº ¸í·ÉÀÌ ¾Æ´Ï¾î¼­ ³¡¿¡ ¼¼¹ÌÄÝ·ÐÀ» ºÙÀÌÁö ¾Ê´Â´Ù.

 

enum Origin { East, West, South, North }

 

¹æÇâÀº µ¿¼­³²ºÏ ³Ý Áß ÇϳªÀÇ °ª¸¸ °¡Áú ¼ö ÀÖ¾î ¿­°ÅÇüÀ¸·Î Á¤ÀÇÇÏ´Â °ÍÀÌ ÇÕ´çÇÏ´Ù. ¿­°Å ¸â¹öÀÇ À̸§Àº ¸íĪ ±ÔÄ¢¿¡ ¸Â°Ô ÀÚÀ¯·Ó°Ô ºÙÀÏ ¼ö ÀÖÀ¸¸ç ĪÇÒ ¶§´Â "¿­°ÅŸÀÔ.¸â¹ö" ½ÄÀ¸·Î ´ëÀÔÇÑ´Ù. ´ÙÀ½Àº Origin ŸÀÔÀÇ º¯¼ö TurnÀ» ¼±¾ðÇÏ°í ³²ÂÊÀ» °¡¸®Å²´Ù.

 

Origin Turn;

Turn = Origin.South;

 

¿­°Å ¸â¹ö´Â 0ºÎÅÍ ½ÃÀ۵Ǿî 1¾¿ Áõ°¡ÇÏ´Â Á¤¼ö°ªÀ» °¡Áø´Ù. Origin ¿­°ÅÇü¿¡¼­ East°¡ 0ÀÌ°í West°¡ 1À̸ç South, North´Â °¢°¢ 2¿Í 3ÀÇ °ªÀ» °¡Áø´Ù. ¿­°Å ¸â¹ö³¢¸® Áߺ¹µÇÁö¸¸ ¾ÊÀ¸¸é °ª ÀÚü¿¡´Â º° Àǹ̰¡ ¾øÁö¸¸ ±»ÀÌ Æ¯Á¤°ªÀ» ÁöÁ¤ÇÏ·Á¸é = °ú ¿øÇÏ´Â °ªÀ» ¾´´Ù. °ªÀÌ »ý·«µÈ ¸â¹ö´Â ÀÌÀü ¸â¹öÀÇ °ªº¸´Ù 1 ´õ Å« °ªÀ» °¡Áø´Ù.

 

enum Origin { East = 1, West = 5, South, North }

 

À§ Á¤Àǹ®¿¡¼­ East¿Í West´Â ÁöÁ¤ÇÑ °ª 1, 5¸¦ °¡Áö¸ç South, North´Â 6°ú 7·Î Á¤ÀǵȴÙ. ¿­°ÅÇüÀÇ ³»ºÎ ÀúÀå Çü½ÄÀº int ŸÀÔÀ̸ç ÃÖ´ë 40¾ï°³ÀÇ ¸â¹ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ³Ê¹« ÃæºÐÇØ ±â¾ïÀå¼Ò°¡ ³¶ºñµÇ´Âµ¥ ¿­°Å ŸÀÔ À̸§ ´ÙÀ½¿¡ ³»ºÎ ÀúÀå ŸÀÔÀ» ÁöÁ¤ÇÏ¸é ¿ë·®À» Á¶±Ý ¾Æ³¥ ¼ö ÀÖ´Ù.

 

enum Origin : byte { East, West, South, North }

 

ÀÌ·¸°Ô ¼±¾ðÇϸé Origin ŸÀÔÀº ¿­°Å ¸â¹öÀÇ °³¼ö°¡ 256°³·Î Á¦ÇѵÇÁö¸¸ 1¹ÙÀÌÆ®¿¡ ÀúÀåµÇ¾î ¸Þ¸ð¸®¸¦ Àû°Ô Â÷ÁöÇÑ´Ù. °íÀÛ 3¹ÙÀÌÆ® ¾Æ³¢ÀÚ°í ÀÌ·± ±¸µÎ¼èÁþÀ» ÇÒ ÇÊ¿ä´Â ¾øÁö¸¸ ¿­°ÅÇüÀÇ ´ë¿ë·® ¹è¿­ÀÌ ÇÊ¿äÇÒ ¶§´Â ÀÌ Â÷À̵µ ²Ï Ä¿Áø´Ù. °°Àº À̸§ÀÇ ¿­°Å ¸â¹ö¸¦ Áߺ¹ Á¤ÀÇÇÒ ¼ö´Â ¾øÀ¸¸ç »ç½Ç ±×·² ÇÊ¿äµµ ¾ø´Ù. Origin¾È¿¡ East°¡ µÎ °³ ÀÖÀ¸¸é 0ÀÎÁö 1ÀÎÁö ¸ðÈ£ÇØÁø´Ù. ±×·¯³ª ´Ù¸¥ À̸§À¸·Î °°Àº °ªÀ» °¡Áö´Â ¿­°Å ¸â¹ö´Â °¡´ÉÇÏ´Ù. ¿­°Å ¸â¹öÀÇ °ªÀ» °áÁ¤Çϴµ¥ ¹®Á¦°¡ ¾øÀ¸¸ç ÀÏÁ¾ÀÇ µ¿ÀǾ Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù.

 

enum Origin { East, East, West, South, North }        // ¿¡·¯

enum Origin { East = 1, West = 1, South, North }      // °¡´É

enum Origin { East, West, South, North, Dong = East } // °¡´É

 

ù ¹ø° ¼±¾ðÀº Origin.EastÀÇ °ªÀÌ ¸ðÈ£ÇØ ¿¡·¯ÀÌ´Ù. µÎ ¹ø° ¼±¾ðÀº East¿Í West°¡ µÑ ´Ù 1ÀÇ °ªÀ» °¡Áö´Âµ¥ ¾î¶² ÀÌÀ¯·Î µ¿ÂÊ°ú ¼­ÂÊÀÌ °°Àº Àǹ̸¦ °¡Áú ¼ö ÀÖ¾î ¹®¹ýÀûÀ¸·Î´Â Ÿ´çÇÏ´Ù. ¼¼ ¹ø° ¼±¾ðÀº East¿Í °°Àº °ªÀ» °¡Áö´Â µ¿ÀǾî DongÀ» Á¤ÀÇÇÑ´Ù. ÀÌ ¿­°ÅÇü¿¡¼­ µ¿ÂÊÀº Origin.East·Î Ç¥ÇöÇÒ ¼öµµ ÀÖ°í Origin.DongÀ¸·Î Ç¥ÇöÇÒ ¼öµµ ÀÖ´Ù.

¿­°ÅÇüÀº ³»ºÎÀûÀ¸·Î Á¤¼öÇüÀ̸ç Á¤¼öÇü º¯¼ö¿Í ȣȯµÈ´Ù. Æ÷¸ËÀº °°Áö¸¸ ŸÀÔÀÌ ´Þ¶ó Á÷Á¢ ´ëÀÔÇÒ ¼ö´Â ¾ø°í ij½ºÆÃÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â Á¤¼öÇü°ú ¿­°ÅÇüÀÇ °ª ´ëÀÔ°ú Ãâ·ÂÀ» Å×½ºÆ®ÇÑ´Ù.

 

EnumInt

½ÇÇà°á°ú

using System;

 

enum Origin { East, West, South, North }

 

class CSTest {

     static void Main() {

          Origin Turn;

          Turn = Origin.South;

          Console.WriteLine(Turn);

          int Value = (int)Turn;

          Console.WriteLine(Value);

     }

}

South

2

 

Origin ŸÀÔÀÇ º¯¼ö TurnÀ» ¼±¾ðÇÏ°í Origin.South¸¦ ´ëÀÔÇÏ¿© Ãâ·ÂÇÏ¸é ¿­°Å ¸â¹öÀÇ À̸§À¸·Î Ç¥½ÃµÈ´Ù. TurnÀ» (int)·Î ij½ºÆÃÇÏ¿© Á¤¼öÇü º¯¼ö Value¿¡ ´ëÀÔÇÑ ÈÄ Ãâ·ÂÇÏ¸é ¿­°Å ¸â¹öÀÇ ½ÇÁ¦°ªÀÎ 2·Î Ç¥½ÃµÈ´Ù. Àǹ̴ °°Áö¸¸ ŸÀÔ¿¡ µû¶ó Ç¥Çö ¹æ½ÄÀÌ ´Ù¸£´Ù.

TrunÀÇ °ª ¹üÀ§´Â °íÀÛ 0~3À̾ Value¿¡ ´ëÀÔÇصµ °ª ¼Õ½ÇÀÌ ÀüÇô ¾ø´Ù. ±×·¯³ª ¹Ý´ë ¹æÇâÀ¸·ÎÀÇ ´ëÀÔÀº À§ÇèÇÏ´Ù. ´ÙÀ½ ´ëÀÔ¹®ÀÌ À¯È¿ÇÏ·Á¸é Value°¡ 0~3ÀÇ °ª Áß Çϳª¿©¾ß Çϴµ¥ ¹üÀ§¸¦ ¹þ¾î³­ °ªÀ̸é TurnÀÇ »óÅ°¡ ¹«È¿ÇØÁø´Ù. ±×·¡¼­ ¾Ï½ÃÀû º¯È¯À» ±ÝÁöÇÏ°í °­Á¦ ij½ºÆÃÇϵµ·Ï µÇ¾î ÀÖ´Ù.

 

Turn = (Origin)Value;

 

¿­°Å ¸â¹ö´Â ¿­°Å ŸÀÔ ¼Ò¼ÓÀ̾ ĪÇÒ ¶§¸¶´Ù Origin.South, Origin.East ½ÄÀ¸·Î ÀÏÀÏÀÌ ¼Ò¼ÓÀ» ¹àÇô¾ß ÇÑ´Ù. Àǹ̵µ ¸íÈ®ÇÏ°í ¸íĪ Ãæµ¹ À§Çèµµ ¾øÁö¸¸ ÀÏÀÏÀÌ ¼Ò¼ÓÀ» ¹àÈ÷±â´Â ±ÍÂúÀº ¸éÀÌ ÀÖ´Ù. ÀÌ·² ¶§´Â ¼±µÎ¿¡ ´ÙÀ½ ¼±¾ðÀ» Ãß°¡ÇÏ¿© Origin ŸÀÔÀÇ ¸â¹ö¸¦ ¹Ì¸® ÀÐ¾î ³õµµ·Ï ÇÑ´Ù.

 

using static Origin;

 

ÀÌÈĺÎÅÍ Turn = South ½ÄÀ¸·Î ¼Ò¼ÓÀº »ý·«ÇÏ°í ¿­°Å ¸â¹öÀÇ À̸§¸¸À¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. C ¾ð¾îÀÇ ¿­°ÅÇü°ú À¯»çÇØÁø´Ù. ±×·¯³ª ¼Ò¼ÓÀÌ ¾øÀ¸¸é ¿ÜºÎ¿ÍÀÇ ¸íĪ Ãæµ¹ÀÌ ÀÚÁÖ ¹ß»ýÇÑ´Ù. ¿øÄ¢´ë·Î ¼Ò¼ÓÀ» ¹àÈ÷°í ¾²´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

¿­°ÅÇüÀº System.Enum ±¸Á¶Ã¼ÀÌ¸ç ¿­°ÅÇüÀ» °ü¸®ÇÏ´Â ¸Þ¼­µå°¡ Æ÷ÇԵǾî ÀÖ´Ù. ToInt32, ToDouble µî To·Î ½ÃÀÛÇÏ´Â ¸Þ¼­µå´Â ¿­°ÅÇüÀ» ´Ù¸¥ ŸÀÔÀ¸·Î º¯È¯Çϴµ¥ ÀÌ Áß ¹®ÀÚ¿­·Î º¯È¯ÇÏ´Â ToStringÀÌ ½Ç¿ëÀûÀÌ´Ù. Parse ¸Þ¼­µå´Â ¹Ý´ë·Î ´Ù¸¥ ŸÀÔÀÇ °ªÀ» ¿­°ÅÇüÀ¸·Î º¯È¯ÇÑ´Ù. IsDefined´Â ¿­°ÅÇü³»¿¡ ƯÁ¤ ¿­°Å ¸â¹ö°¡ Á¸ÀçÇÏ´ÂÁö Á¶»çÇÑ´Ù.

 

EnumString

½ÇÇà°á°ú

using System;

 

enum Origin { East, West, South, North }

 

class CSTest {

     static void Main() {

          Origin Turn;

          Turn = Origin.South;

          string name = Turn.ToString();

          Console.WriteLine(name);

          Turn = (Origin)Enum.Parse(typeof(Origin), "East");

          Console.WriteLine(Turn);

     }

}

South

East

 

 

 

¹®ÀÚ¿­ "East"¸¦ Çؼ®ÇÏ¿© Origin ŸÀÔÀ¸·Î ¹Ù²Ù¾î Turn¿¡ ´ëÀÔÇß´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¸é ½ÇÇàÁß¿¡ »ç¿ëÀڷκÎÅÍ ¿­°ÅÇü°ªÀ» Á÷Á¢ ÀԷ¹ÞÀ» ¼öµµ ÀÖ´Ù. C#Àº ŸÀÔ Á¤º¸¸¦ Á¶»çÇÏ´Â ±â´ÉÀÌ ÀÖ¾î ¹®ÀÚ¿­·ÎºÎÅÍ ¿­°ÅÇüÀÇ °ªÀ» ¾Ë¾Æ³¾ ¼ö ÀÖÀ¸¸ç ±×·¡¼­ ÀÌ·± µ¿ÀÛÀÌ °¡´ÉÇÏ´Ù.