¼Ò¼³°°ÀºC#  Á¦4°­ÀÇ C#ÀÇ °´Ã¼ÁöÇâ  07. ¼Ò¸êÀÚ(Deconstructor)  

 

 

4.7 ¼Ò¸êÀÚ(Deconstructor)

 

»ý¼ºÀÚ¿Í´Â ¹Ý´ëÀÇ °³³äÀ¸·Î ¼Ò¸êÀÚ¶ó´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ¼Ò¸êÀڴ Ŭ·¡½ºÀÇ °´Ã¼°¡ ¼Ò¸êµÉ ¶§ È£ÃâµÇ¾îÁý´Ï´Ù. °´Ã¼ »ý¼º½Ã ÇÒ´çÇß´ø ¸Þ¸ð¸®¸¦ ¼Ò¸êÀÚ·Î ÇÏ¿©±Ý ȸ¼öÇϵµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ¼Ò¸êÀÚ´Â ¸Å°³º¯¼ö¸¦ °¡Áú ¼ö ¾ø°í, Á¢±Ù Á¦ÇÑÀÚ¸¦ °¡Áú ¼ö ¾øÀ¸¸ç, ¸í½ÃÀûÀ¸·Î È£Ãâ µÉ ¼ö ¾ø½À´Ï´Ù. ¼Ò¸êÀÚ´Â »ý¼ºÀÚ¿Í´Â ¹Ý´ëÀÇ ¼ø¼­·Î È£ÃâÀÌ µÇ¾îÁý´Ï´Ù.

 

&

DestructorTest.cs

Ü ¼Ò¸êÀÚ¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦

using System;

public class DestructorTest {

       public DestructorTest(){}

       ~ DestructorTest(){

                     Console.WriteLine("³ª´Â Destructor ÀÔ´Ï´Ù.");

        }

        public static void Main() {

                DestructorTest a = new DestructorTest();

        }

}

C:\C#Example\04>csc DestructorTest.cs

C:\C#Example\04>DestructorTest

³ª´Â Destructor ÀÔ´Ï´Ù.

 

ÀÌ ºÎºÐÀÌ ¼Ò¸êÀÚ¸¦ ¸í½ÃÇÑ ºÎºÐÀÔ´Ï´Ù.

 

n                 ~DestructorTest() {}

 

ÇÏÁö¸¸ Á÷Á¢ÀûÀ¸·Î ¼Ò¸êÀÚ¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù´Â °¡ºñÁöÄÝ·ºÅÍ(Garbage Collector)¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. ±×¸®°í ÇÁ·Î±×·¡¸Ó°¡ ÀÌ·¸°Ô ¼Ò¸êÀÚ¿¡ ´ëÇØ Ç¥½Ã¸¦ ÇØ ³õ´õ¶óµµ ½ÇÁ¦ÀûÀÎ ¸Þ¸ð¸® ÇØÁ¦´Â °¡ºñÁöÄÝ·ºÅͰ¡ ¾Ë¾Æ¼­ ÇÏ´Ï ±× ºÎºÐÀº ÇÁ·Î±×·¡¸ÓÀÇ ¿µ¿ª ¹ÛÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·³ °¡ºñÁöÄÝ·ºÅÍ¿¡ ´ëÇØ Àá±ñ ¼³¸í µå¸®°Ú½À´Ï´Ù.

 

C#¿¡¼­ ÇÁ·Î±×·¡¸Ó°¡ new Ű¿öµå¸¦ »ç¿ëÇÏ¿© »ý¼ºÇß´ø °´Ã¼µéÀ» ¾ðÁ¦ Á¦°ÅÇØ¾ß µÉ±î¿ä? °´Ã¼¸¦ ÀüÇô »ç¿ëÇÏÁö ¾ÊÀ» ¶§°¡ Á¤´äÀÔ´Ï´Ù. ¸Þ¸ð¸®°¡ ºÎÁ·Çϰųª ¸Þ¸ð¸®ÀÇ Ã»¼Ò¸¦ ÇØ¾ß ÇÏ´Â »óȲÀÌ ¹ß»ýÇÏ¸é °¡ºñÁöÄÝ·ºÅÍ´Â ¾ðÁ¦³ªÃ³·³ °´Ã¼µéÀ» °Ë»çÇÏ°Ô µÇ¸ç ´õ ÀÌ»ó »ç¿ëµÇÁö ¾Ê´Â °´Ã¼µéÀº ¸Þ¸ð¸®¿¡¼­ Á¦°ÅÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.

 

ÇÁ·Î±×·¡¸Ó°¡ °´Ã¼ÀÇ ¼Ò¸êµµ ´ã´çÇØ¾ß ÀÌÄ¡¿¡ ¸Â°ÚÁö¸¸ ±× ¿ªÇÒÀ» ÁÖ·Î ´ã´çÇÏ´Â °ÍÀº °¡ºñÁöÄÝ·ºÅÍÀÔ´Ï´Ù. °¡ºñÁöÄÝ·ºÅͰ¡ Á¦´ë·Î Ȱµ¿À» ÇÏ´ÂÁö ¾Ë±â¶õ ½±Áö ¾Ê½À´Ï´Ù. °´Ã¼°¡ »ç¿ëµÇÁö ¾Ê´Âµ¥µµ ºÒ±¸Çϰí ÀüÇô È£ÃâµÇÁö ¾ÊÀ» ¼öµµ ÀÖ°í, Á¦°ÅÇÏ´Â ¼ø¼­µµ °¡ºñÁöÄÝ·ºÅÍ¿¡ ÀÇÇØ ÀÓÀÇÀûÀ¸·Î °áÁ¤ÇÏ°Ô µË´Ï´Ù. ±×·± °áÁ¡Åõ¼ºÀÌÀÇ °¡ºñÁöÄÝ·ºÅ͸¦ ¿Ö »ç¿ëÇÏ´Â °É±î¿ä?

 

¢Ã ¼Ò¸êÀÚ(Destructor)

q                °´Ã¼°¡ ¼Ò¸êµÇ±â Àü¿¡ È£ÃâµÇ¾î °´Ã¼¿¡ ºÎ¿©µÈ ¸Þ¸ð¸®ÀÇ È¸¼ö¸¦ ´ã´ç

q                ½ÇÁ¦ÀûÀ¸·Î ¸Þ¸ð¸®ÀÇ È¸¼ö¿©ºÎ´Â °¡ºñÁöÄÝ·ºÅͰ¡ ´ã´çÇÑ´Ù.

q                ¸Å°³º¯¼ö¿Í Á¢±Ù Á¦ÇÑÀÚ¸¦ °¡Áú ¼ö ¾ø´Ù.

 

±× ÀÌÀ¯´Â °´Ã¼¸¦ ¼Ò¸êÇØ¾ß ÇÏ´Â ÀûÀýÇÑ ½ÃÁ¡À» ÇÁ·Î±×·¡¸Ó°¡ ÆÇ´ÜÇϱ⿡´Â ³Ê¹«³ª º¹ÀâÇÏ°í ¹Ì¹¦ÇÑ ¹®Á¦À̱⠶§¹®¿¡ °¡ºñÁöÄÝ·ºÅÍ´Â ÀÌ ºÎºÐÀ» ´ë½Å ÆÇ´ÜÇÏ¿© ¾ÈÀüÇÏ°Ô °´Ã¼¸¦ Á¦°ÅÇØ Áشٴµ¥ ÀÖ½À´Ï´Ù. ½Ã½ºÅÛÀÇ ¼º´ÉÀ» ¶³¾î¶ß¸± °¡´É¼ºµµ Å©Áö¸¸ °¡ºñÁöÄÝ·ºÅ͸¦ »ç¿ëÇÔÀ¸·Î½á ¾ò´Â ÀÌÁ¡ÀÌ ´õ Å©±â ¶§¹®¿¡ °¡ºñÁöÄÝ·ºÅ͸¦ »ç¿ëÇÑ ¸Þ¸ð¸®ÀÇ °ü¸®¸¦ ¼±ÅÃÇÑ °ÍÀÔ´Ï´Ù. Â÷¼¼´ëÀûÀÎ ¾ð¾îµéÀº ´ëºÎºÐ ÀÌ·¯ÇÑ ¹æ½ÄÀÇ ¸Þ¸ð¸® °ü¸®¹ýÀ» ÁÖ·Î »ç¿ëÇϰí ÀÖ½À´Ï´Ù.

 

½ÇÁ¦ º¹ÀâÇÑ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ °´Ã¼°¡ ´õ ÀÌ»ó »ç¿ëµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ÆÇ´ÜÇÏ´Â °ÍÀº ±×¸® °£´ÜÇÑ ÀÏÀÌ ¾Æ´Õ´Ï´Ù. À̰ÍÀ» ÆÇ´ÜÇÏ´Â °Íµµ ¾î·ÆÁö¸¸, ±×º¸´Ù ´õ À§ÇèÇÑ °ÍÀº »ç¿ëÇÏÁöµµ ¾Ê´Â °´Ã¼ÀÇ ¸Þ¸ð¸®¸¦ Á¦°ÅÇÏÁö ¾Ê°í À¯ÁöÇϰí Àְųª À߸ø ¿¹ÃøÇؼ­ °´Ã¼¸¦ Á¦°ÅÇß´Ù¸é ÇÁ·Î±×·¥ÀÌ °´Ã¼¿¡ Á¢±ÙÇÏ´Â ¼ø°£ ¿Àµ¿ÀÛÀ» ÀÏÀ¸Å°°Å³ª ±× ÇÁ·Î±×·¥ÀÌ °©Àڱ⠸ØÃß´Â °æ¿ì°¡ »ý±â±â ¶§¹®ÀÔ´Ï´Ù.

 

µû¶ó¼­ C#¿¡¼­´Â °¡ºñÁöÄÝ·ºÅͶó´Â ¸Þ¸ð¸®°ü¸®ÀÚ¸¦ µÎ¾î ¸Þ¸ð¸®¸¦ Á¤¸® ÇϰԲû ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¹æ¹ýÀº ÀÌÀü ÇÁ·Î±×·¥ÀÇ °¡Àå Å« ´ÜÁ¡À» º¸¿Ï Çß´Ù°í º¼ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.



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