¼Ò¼³°°ÀºC#  Á¦4°­ÀÇ C#ÀÇ °´Ã¼ÁöÇâ  15. Ȧ·Î »ç¿ëµÇ´Â this  

 

 

4.15 Ȧ·Î »ç¿ëµÇ´Â this(return this)

 

this°¡ È¥ÀÚ¼­ ÀÌ¿ëµÇ¸é ÀÚ½ÅÀÇ ÂüÁ¶°ª ÀÚü¸¦ ÀǹÌÇÕ´Ï´Ù. this´Â µðÀÚÀΟÀÓ¿¡¼­ Àû¿ëµÇÁö¸¸ °á±¹ÀÇ this´Â ¾ðÁ¨°¡ ¸¸µé¾îÁú ¸Þ¸ð¸®ÀÇ ÂüÁ¶°ª thisÀÔ´Ï´Ù. Áï, ÀÌ ¸»Àº ½ÇÇà ŸÀÓ¿¡ thisÀÚü´Â °´Ã¼¸¦ »ý¼ºÇÒ ¶§ °´Ã¼ º¯¼ö°¡ °¡Áö´Â °ª°ú °°Àº °ªÀ» °¡Áö°Ô µË´Ï´Ù. »ý¼ºµÉ °´Ã¼ÀÇ ÂüÁ¶°ªÀ» ÀǹÌÇÏ´Â °ÍÀÔ´Ï´Ù. this ÀÚü¸¦ »ç¿ëÇÏ´Â ¿¹¸¦ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

&

SpecialThis.cs

Ü ¾ðÁ¨°¡ »ý¼ºµÉ °´Ã¼ ÀÚ½ÅÀÇ ÂüÁ¶°ª this¸¦ Å×½ºÆ®ÇÑ ¿¹Á¦

using System;

public class SpecialThis {

      private int i = 0;

      public void plusCount(){

            i++;

      }

     public SpecialThis getMySelf() {

                return this;

     }

      public void print(){

            Console.WriteLine("member i = " + this.i);

      }

        public static void Main() {

            SpecialThis st = new SpecialThis();

            SpecialThis st2 = st.getMySelf();

            st.print();

            st.plusCount();

            st.print();

            st2.plusCount();

            st2.print();

            st.plusCount();

            st.print();

      }

}

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

C:\C#Example\04>SpecialThis

member i = 0

member i = 1

member i = 2

member i = 3

 

this¶ó´Â Ű¿öµå°¡ ¾ø´Ù¸é Ŭ·¡½º´Â ÀÚ½ÅÀÇ ÂüÁ¶°ªÀ» ³Ñ±æ ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. Àß »ý°¢ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ¾ÆÁ÷ ¸¸µé¾îÁöÁöµµ ¾ÊÀº ÀÚ½ÅÀ» ¾î¶»°Ô ¾Ë°í ÀÚ½ÅÀÇ ÂüÁ¶°ªÀ» ¿ÜºÎ·Î ³Ñ°ÜÁÙ ¼ö ÀÖ½À´Ï±î? this Ű¿öµå´Â ±×Àú this.¸â¹öÇʵå, this.¸â¹ö¸Þ¼­µå ÀÌ·¸°Ô »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó °´Ã¼°¡ ¸Þ¸ð¸®¸¦ ÇÒ´ç ¹Þ´Â ¼ø°£¿¡ °´Ã¼º¯¼ö°¡ °¡Áö´Â °ª°ú ¶È°°Àº °ªÀ» °¡Áö±â ¶§¹®¿¡ this ÀÚü´Â, µðÀÚÀΟÀÓ¿¡ ÀÚ½ÅÀ» °¡¸®Å°´Â ÀÚ±â ÀÚ½ÅÀÇ ÂüÁ¶º¯¼ö¶ó°í º¸¸é µË´Ï´Ù.

 

this¸¦ ¸®ÅÏÇÏ´Â ¿¹

public SpecialThis getMySelf(){

                      return this;

}

 

¢Ñ  thisÀÇ Å¸ÀÔ

thisÀÇ Å¸ÀÔÀº ÇöÀç this°¡ »ç¿ëµÇ°í ÀÖ´Â ¹Ù·Î ÀÚ±â ÀÚ½ÅÀÔ´Ï´Ù.

 

À§ÀÇ ÀÌ ¸Þ¼­µå´Â °´Ã¼°¡ »ý¼ºµÈ ÈÄ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í this´Â °´Ã¼°¡ »ý¼ºµÇ¸é °´Ã¼º¯¼öÀÇ °ª°ú °°Àº ÂüÁ¶°ªÀ» °¡Áö°Ô µË´Ï´Ù. ±×·¯´Ï thisÀÇ Å¸ÀÔÀº ÇöÀç Ŭ·¡½ºÀÇ µ¥ÀÌÅÍŸÀÔ°ú °°½À´Ï´Ù. ¸Þ¼­µåÀÇ ¸®ÅÏŸÀÔ(Return Type)°ú ¸®ÅÏ(Return) µÇ¾îÁö´Â °ÍÀº °°¾Æ¾ß ÇÕ´Ï´Ù. this¸¦ ¸®ÅÏÇÑ´Ù´Â °ÍÀº ÀÚ½ÅÀÇ ÂüÁ¶°ªÀ» ¸®ÅÏÇÏ´Â °Í°ú °°±â ¶§¹®¿¡ this°¡ ¼ÓÇØÀÖ´Â ÀÚ½ÅÀÇ Å¬·¡½º°¡ thisÀÇ µ¥ÀÌÅÍŸÀÔÀÌ µÇ´Â °ÍÀÔ´Ï´Ù. ¿©±â¼­ÀÇ this´Â SpecialThis µ¥ÀÌÅÍŸÀÔÀÔ´Ï´Ù. ±×¸®°í, ÀÚ½ÅÀ» ¸®ÅÏÇϰíÀÚ ÇÑ´Ù¸é ¡®return this;¡¯ ¶ó°í ÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù.

 

¢Ã Ȧ·Î »ç¿ëµÇ´Â this(return this)

q                °´Ã¼¸¦ »ý¼ºÇϱâ Àü ´Ü°è¿¡¼­ ±× ÁÖ¼Ò¸¦ this¶ó°í ÇÏ°Ô µÇ¸é, ÇÒ´çµÇ´Â ¼ø°£ this´Â ÇÒ´çµÇ´Â ¸Þ¸ð¸®ÀÇ ÂüÁ¶°ªÀ» °®°Ô µÊ

q                ¾ðÁ¨°¡ »ý¼ºµÉ ³» ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò

 



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