¸Þ¼µåÀÇ Àμö Àü´ÞÀÇ ¶Ç ´Ù¸¥ ¹æ¹ýÀ¸·Î, ±âº»ÇüÀÇ µ¥ÀÌÅÍÀÌÁö¸¸ ¸Å°³º¯¼ö¸¦ ÂüÁ¶(Reference)·Î ³Ñ±æ ¼öµµ ÀÖ½À´Ï´Ù. ¿ì¼± °á·ÐºÎÅÍ ¸»¾¸ µå¸®ÀÚ¸é, Áï, ÂüÁ¶Çü ¸Å°³º¯¼ö(Reference Parameter)´Â ¡®¸Þ¸ð¸®ÀÇ À§Ä¡¿¡ ´ëÇÑ ÂüÁ¶¡¯ ÀÔ´Ï´Ù. À§¿¡¼ value·Î °ªÀ» È£ÃâÇϸé, ±× Àμö°¡ »õ·Î¿î ¸Þ¸ð¸®¸¦ »ý¼º½ÃÄÑ º¹»çº»À» ÀúÀåÇÑ´Ù°í ¸»¾¸ µå·È½À´Ï´Ù. ÇÏÁö¸¸ À̿ʹ ´Þ¸® ÂüÁ¶Çü ¸Å°³º¯¼ö´Â ¸Þ¼µå°¡ È£ÃâµÉ ¶§, ³Ñ°ÜÁö´Â º¯¼öÀÇ ¸Þ¸ð¸® ÁÖ¼Ò¿¡ ´ëÇÑ ÂüÁ¶°ª(Reference Value)À» °¡Áö°Ô µË´Ï´Ù. À̰ÍÀ» ±×¸²À¸·Î ³ªÅ¸³»¸é ¾Õ ÀüÀÇ Call by Value¿Í´Â ¾à°£ÀÇ Â÷À̰¡ ÀÖ½À´Ï´Ù.

±×¸² 2-8 ¸Å°³º¯¼ö ÂüÁ¶ÀÇ ¿ø¸®
À§ÀÇ ±×¸²¿¡¼ ¿ì¸®´Â a¸Þ¸ð¸®¸¦ x°¡ ÇÔ²² °¡¸£Ä¡°í ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. 3ÀÌ Â÷ÁöÇϰí ÀÖ´Â ¸Þ¸ð¸®¸¦ a¶ó´Â À̸§°ú x¶ó´Â À̸§ µÎ °³¸¦ °¡Áö°í ÀÖ´Â °Í°ú °°Àº ¿ø¸®°¡ µË´Ï´Ù. ¹°·Ð b¿Í yÀÇ °æ¿ì¿¡µµ ¶È°°Àº ¿ø¸®·Î µ¿ÀÛÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¿ø¸®¸¦ ¿ì¸®´Â °í±Þ ´Ü¾î¸¦ »ç¿ëÇÏ¿© Call By Reference¶ó°í ÇÕ´Ï´Ù. À̰ÍÀÌ ¾î¶² À§·ÂÀ» °¡Áö´ÂÁö ¿¹Á¦¸¦ ÅëÇØ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
|
& |
TestRef.cs |
Ü ReferenceŸÀÔ ÀμöÀü´ÞÀÇ ¿¹Á¦ |
|
using System; class TestRef{ static void CallByRef(ref int x) { x = 10000; } public static void Main() { int x1 = 10; CallByRef(ref x1); Console.WriteLine("Call-By-Reference: {0}", x1); } } | ||
|
C:\C#Example\02>csc TestRef.cs C:\C#Example\02>TestRef Call-By-Reference: 10000 | ||
¼Ò½º¸¦ Àß »ìÆìº¸½Ã¸é, À§ ÄÚµå¿Í Á¶±Ý ´Þ¶óÁø °÷À» ¹ß°ßÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¸ÕÀú ¸Þ¼µå¸¦ Á¤ÀÇÇÒ ¶§ Àμö¿¡ ref Ű¿öµå°¡ ºÙ¾î ÀÖ½À´Ï´Ù.
n static void CallByRef(ref int x)
±×¸®°í, ±× ¸Þ¼µå¸¦ È£ÃâÇÏ´Â ºÎºÐ¿¡µµ ¿ª½Ã ref Ű¿öµå°¡ ´õÇØÁø °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
n CallByRef(ref x1);
ÀÌ·¸°Ô ÂüÁ¶(Reference)·Î Àμö°ªÀ» ³Ñ±â±â À§Çؼ´Â ¸¸µå´Â Àμö¿Í È£ÃâÇÒ ¶§ÀÇ Àμö¿¡ ref Ű¿öµå¸¸ ºÙ¿©ÁÖ¸é µÇ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í °á°ú¸¦ º¸½Ã¸é, À§ ValueTest¿¡¼´Â ¹Ù²îÁö ¾Ê¾Ò´ø °ªÀÌ ¿©±â¼´Â 10000À¸·Î ¹Ù²î¾î Áø °ÍÀ» È®ÀÎÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Main() ¸Þ¼µå¿¡¼ CallByRef(ref x1)·Î ¸Þ¼µå¸¦ È£ÃâÇϸé, ¸Þ¼µåÀÇ Àμö´Â x1ÀÇ ¸Þ¸ð¸®ÀÇ ÂüÁ¶°ªÀ» ³Ñ°Ü¹Þ°Ô µË´Ï´Ù. ±×¸®°í ±×°÷¿¡ 10000À̶õ °ªÀ» ÇÒ´çÇÏ¿´À¸´Ï ¿ø·¡ ÀÖ´ø x1ÀÇ 10Àº ¾ø¾îÁö°í 10000ÀÌ »õ·ÎÀÌ ÀÚ¸®ÇÏ°Ô µÇ´Â °ÅÁÒ.
ÀÌ·¸°Ô ¸Þ¼µå¿¡ ref Ű¿öµå¸¦ Ãß°¡ÇÔÀ¸·Î¼ ÂüÁ¶·ÎÀÇ È£ÃâÀÌ °¡´ÉÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î, ÂüÁ¶·Î °ªÀ» ³Ñ±æ ¶§ ÁÖÀÇÇÒ »çÇ×Àº ÂüÁ¶ÇÒ ´ë»óÀº ¹Ýµå½Ã ÃʱâÈ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ÃʱâÈ µÇÁö ¾ÊÀº º¯¼ö¸¦ ³Ñ°ÜÁÙ ¶§ ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µË´Ï´Ù.
|
¢Ã ref Ű¿öµå |
|
q ÂüÁ¶¿¡ ÀÇÇÑ Àü´ÞÀ» ÇÒ ¶§ »ç¿ëÇϴ Ű¿öµå q ÂüÁ¶·Î °ªÀ» ³Ñ±æ ¶§ ÂüÁ¶ÇÒ ´ë»óÀº ¹Ýµå½Ã ÃʱâÈ µÇ¾î¾ß ÇÑ´Ù. |
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºC# Á¦2°ÀÇ ÀúÀÚ:ÃÖ¿µ°ü |