¹è¿­ÀÇ Ã·ÀÚ ¹üÀ§ ÁöÁ¤

C#ÀÇ ¹è¿­Àº Ç×»ó ÷ÀÚ°¡ 0ºÎÅÍ ½ÃÀÛÇϵµ·Ï µÇ¾î ÀÖ´Ù. ¸Þ¸ð¸®ÀÇ ±¸Á¶»ó 0ºÎÅÍ ½ÃÀÛÇÏ´Â °ÍÀÌ ´ç¿¬ÇÏÁö¸¸ ¶§·Î´Â ÀÌ·± Ư¼ºÀÌ ºÒÆíÇÒ ¼öµµ ÀÖ´Ù. ¿øÇÑ´Ù¸é ÀÓÀÇÀÇ Ã·ÀÚºÎÅÍ ½ÃÀÛÇÏ´Â ¹è¿­À» ¸¸µé ¼öµµ ÀÖ´Ù. À̶§´Â ArrayÀÇ ´ÙÀ½ Á¤Àû ¸Þ¼­µå¸¦ »ç¿ëÇÑ´Ù.

 

public static Array CreateInstance(Type elementType, int[] lengths, int[] lowerBounds)

 

ÀÌ ¸Þ¼­µå´Â ´ÙÂ÷¿ø ¹è¿­À» »ý¼ºÇÑ´Ù. ù ¹ø° Àμö´Â ¹è¿­ÀÇ ¿ä¼Ò ŸÀÔÀ» ÁöÁ¤ÇÑ´Ù. µÎ ¹ø° Àμö·Î °¢ Â÷¿øÀÇ ±æÀ̸¦ ÁöÁ¤ÇÏ´Â ¹è¿­ÀÌ ¿À°í ¼¼ ¹ø° Àμö·Î °¢ Â÷¿øÀÇ ÇÏÀ§ ÷ÀÚ ¹øÈ£¸¦ ÁöÁ¤ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÷ÀÚ°¡ 1ºÎÅÍ ½ÃÀÛÇÏ´Â ±æÀÌ 5ÀÇ 1Â÷¿ø ¹è¿­À» »ý¼ºÇÑ´Ù.

 

¿¹ Á¦ : ArrayIndex

using System;

 

class CSTest

{

      static void Main()

      {

             Array arInt = Array.CreateInstance(typeof(int), new int[] { 5 }, new int[] { 1 });

             int i;

             for (i = arInt.GetLowerBound(0); i <= arInt.GetUpperBound(0); i++)

             {

                   arInt.SetValue(i,i);

                   Console.WriteLine(arInt.GetValue(i));

             }

      }

}

 

GetLowerBound, GetUpperBound ¸Þ¼­µå´Â Àμö·Î ÁöÁ¤ÇÑ Â÷¿øÀÇ ÇÏÀ§, »óÀ§ ÷ÀÚ¸¦ ±¸ÇÑ´Ù. arIntÀÇ °æ¿ì ÇÏÀ§´Â 1ÀÌ°í »óÀ§´Â 5ÀÌ´Ù. Áï arInt[1] ~ arInt[5]±îÁöÀÇ ¿ä¼Ò°¡ Á¸ÀçÇÑ´Ù. ÀÌ·¸°Ô ¸¸µé¾îÁø ¹è¿­Àº [ ] ¿¬»êÀÚ¸¦ ¾µ ¼ö ¾øÀ¸¹Ç·Î SetValue, GetValue ¸Þ¼­µå·Î °ªÀ» ÀÐ°í ½á¾ß ÇÑ´Ù. ÀÏÂ÷¿ø ¹è¿­À̹ǷΠÀμö·Î ÷ÀÚ¸¸ Àü´ÞÇÏ¸é µÇÁö¸¸ 2Â÷¿ø ÀÌ»óÀÇ ¹è¿­À̶ó¸é ÷ÀÚÀÇ ¹è¿­À» Àü´ÞÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ÀÓÀÇÀÇ Ã·ÀÚ·Î ½ÃÀÛÇÏ´Â 2Â÷¿ø ¹è¿­À» Á¤ÀÇÇÑ´Ù.

 

using System;

 

class CSTest

{

      static void Main()

      {

             Array arInt = Array.CreateInstance(typeof(int), new int[] { 2,3 }, new int[] { 1,2 });

             int i, j;

             for (i = arInt.GetLowerBound(0); i <= arInt.GetUpperBound(0); i++)

             {

                   for (j = arInt.GetLowerBound(1); j <= arInt.GetUpperBound(1); j++)

                   {

                         arInt.SetValue(i+j, new int[] {i,j});

                         Console.WriteLine(arInt.GetValue(new int[] { i, j }));

                   }

             }

      }

}

 

2*3ÀÇ 2Â÷¿ø ¹è¿­ÀÌ¸ç °¢ Â÷¿øÀÇ Ã·ÀÚ´Â 1, 2ºÎÅÍ ½ÃÀÛÇÑ´Ù. 2Â÷¿øÀÌ´Ù º¸´Ï °ªÀ» ÀÐÀ» ¶§µµ ¿øÇÏ´Â ¿ä¼Ò¸¦ ÁöÁ¤Çϱâ À§ÇØ ¹è¿­À» ³Ñ°Ü¾ß ÇÑ´Ù. ¹è¿­À» Á¤ÀÇÇϱâ À§ÇØ ¶Ç ´Ù¸¥ ¹è¿­À» ³Ñ°Ü¾ß ÇÑ´Ù´Ï ¿©·¯ ¸ð·Î º¹ÀâÇØ º¸À̴µ¥ ¹è¿­À̶õ º»ÁúÀûÀ¸·Î ÁßøµÈ ÀÚ·á ±¸Á¶À̱⠶§¹®¿¡ ±× ±¸Á¶ ÀÚüµµ ÁßøÀûÀÌ´Ù.

²À ¿øÇÑ´Ù¸é ÀÓÀÇÀÇ Ã·ÀÚ ¹üÀ§¸¦ ¸¸µé ¼ö´Â ÀÖÁö¸¸ ¿ÀÈ÷·Á ´õ ºÒÆíÇÏ´Ù. Â÷¸®¶ó ±×³É zero base·Î ¹è¿­À» »ý¼ºÇÏ°í Àû´çÈ÷ ÷ÀÚ¸¦ ´õÇؼ­ »ç¿ëÇϰųª ¾Æ´Ï¸é ÷ÀÚ 0¸¦ ¾²Áö ¾Ê°í ¹ö¸®´Â °ÍÀÌ ´õ °£´ÜÇÏ´Ù. ÷ÀÚÀÇ ¹üÀ§¸¦ »ç¿ëÀÚ°¡ Á÷Á¢ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¾ð¾îµéÀÌ °¡²û Àִµ¥ ´å³Ýµµ ÀÌ·± ±â´ÉÀ» Á¦°øÇϱâ´Â ÇÑ´Ù. ±×·¯³ª ¿ö³« º¹ÀâÇÏ°í Çò°¥¸®±â ¶§¹®¿¡ Â÷¶ó¸® ¾È ¾²´Â °Ô ´õ ³ª¾Æ º¸ÀδÙ.