¼Ò¼³°°ÀºC#  Á¦2°­ÀÇ Å¬·¡½ºÀÇ ±âº»¹è°æ  20. readonly »ó¼ö  

 

2.20 readonly »ó¼ö

 

 

 

À̹ø¿¡´Â readonly Ű¿öµå¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸°Ú½À´Ï´Ù. readonly Ű¿öµåµµ const Ű¿öµåó·³ »ó¼ö¸¦ ¸¸µé ¶§ »ç¿ëÇÕ´Ï´Ù. readonly »ó¼ö¸¦ ¼±¾ðÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

1 readonly »ó¼ö ¼±¾ðÇϱ⠿¹

n                 public readonly int READ;

 

readonly »ó¼ö´Â const »ó¼ö¿Í ´Þ¸® ¸î°¡Áö Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¿ì¼± const »ó¼ö´Â ¹¬½ÃÀûÀ¸·Î ¸ðµÎ ´Ù static »ó¼ö°¡ µÇ´Â ¹Ý¸é, readonly »ó¼ö´Â static Ű¿öµå¸¦ »ç¿ëÇϸé static »ó¼ö°¡ µÇ°í, »ç¿ëÇÏÁö ¾ÊÀ¸¸é ÀÏ¹Ý »ó¼ö°¡ µË´Ï´Ù.

 

¢Ã readonly Ű¿öµå

q                static Ű¿öµå¸¦ »ç¿ëÇϸé static »ó¼ö°¡ µÈ´Ù. »ç¿ëÇÏÁö ¾ÊÀ¸¸é ÀϹݻó¼ö°¡ µÈ´Ù.

q                const Ű¿öµå¸¦ »ç¿ëÇÏ´Â °Íó·³ ¹Ýµå½Ã ÃʱâÈ­ µÉ ÇÊ¿ä¾øÀ½

q                °ªÀÌ ÃʱâÈ­ µÇ¾î ÀÖÁö ¾Ê´Ù¸é ½ºÅÂÆ½ »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

 

±×¸®°í const »ó¼öÀÇ °ªÀÌ ¼±¾ð½Ã¿¡ ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇßÁö¸¸, readonly »ó¼ö´Â »ý¼ºÀÚ¸¦ »ç¿ëÇÑ ÃʱâÈ­µµ °¡´ÉÇÕ´Ï´Ù. ÀÌ Àǹ̴ ·±Å¸Àӽÿ¡ ½ºÅÂÆ½»ý¼ºÀÚ¸¦ ÅëÇØ¼­ °ªÀ» ÇÒ´çÇÒ ¼ö ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. Áö±Ý±îÁö ¼³¸íµå¸° ³»¿ëÀ» ½ÇÁ¦ ¿¹Á¦¸¦ ÅëÇØ¼­ È®ÀÎÇØº¸°Ú½À´Ï´Ù.

 

&

ReadonlyTest.cs

Ü readonly »ó¼ö¸¦ Å×½ºÆ®ÇÑ ¿¹Á¦

using System;

public class ReadonlyTest{

         public readonly static int STATIC_READONLY=1;

         public readonly int NORMAL_READONLY;

            static ReadonlyTest(){//static »ý¼ºÀÚ

              STATIC_READONLY = 100;   

       }                        

            public static void Main(){

              Console.Write("STATIC_READONLY="+ReadonlyTest.STATIC_READONLY);

              ReadonlyTest rt1= new ReadonlyTest();

              Console.Write(" NORMAL_READONLY="+rt1.NORMAL_READONLY);

      }//main

}//class

C:\C#Example\02>csc ReadonlyTest.cs

C:\C#Example\02>ReadonlyTest

STATIC_READONLY=100 NORMAL_READONLY=0

 

À§ÀÇ ¿¹Á¦´Â readonly »ó¼öÀÇ Æ¯¼ºÀ» Àß º¸¿©ÁÖ´Â ¿¹Á¦ÀÔ´Ï´Ù. ÀÏ¹Ý readonly »ó¼ö¿Í static readonly »ó¼ö¸¦ ¼±¾ðÇÏ¿´½À´Ï´Ù. static »ó¼ö¿¡´Â 1À̶ó´Â °ªÀ» ÇÒ´çÇÏ¿´Áö¸¸, ÀÏ¹Ý »ó¼ö¿¡´Â ¾Æ¹«·± °ªµµ ÇÒ´çÇÏÁö ¾Ê¾Ò´Ù´Â Á¡¿¡ ÁÖ¸ñÇØÁֽʽÿÀ.

 

Main() ¸Þ¼­µå¸¦ º¸¸é ¸ÕÀú static »ó¼ö¸¦ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù. static ¸â¹öÀÇ ÃʱⰪÀ¸·Î 1À» ÁÖ¾ú´Âµ¥ Ãâ·ÂµÇ´Â °ªÀº 100ÀÔ´Ï´Ù. ±× ÀÌÀ¯´Â static »ý¼ºÀÚ¸¦ »ç¿ëÇÏ¿© °ªÀ» ´Ù½Ã ÇÒ´çÇÏ¿´±â ¶§¹®ÀÔ´Ï´Ù. const »ó¼ö¿¡¼­´Â ÀÌ·¯ÇÑ Çü½ÄÀÇ ÃʱâÈ­´Â ºÒ°¡´ÉÇÕ´Ï´Ù.

 

n                 public readonly static int STATIC_READONLY=1;

n                 ...

n                 static ReadonlyTest(){

n                   STATIC_READONLY = 100;   

n                 }           

n                 ...

n                 Console.Write("STATIC_READONLY="+ReadonlyTest.STATIC_READONLY);

 

´ÙÀ½Àº °´Ã¼¸¦ »ý¼ºÇϰí ÀÏ¹Ý readonly »ó¼ö¸¦ Ãâ·ÂÇϰí ÀÖ½À´Ï´Ù. const »ó¼ö¿¡¼­´Â ¼±¾ð¸¸Çϰí ÃʱâÈ­¸¦ ÇÏÁö ¾Ê´Â´Ù¸é ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ÇÏÁö¸¸ ÀÏ¹Ý readonly »ó¼ö´Â ÃʱâÈ­¸¦ ÇÏÁö¾Ê°í »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ¹°·Ð ÄÄÆÄÀϽà ¿¡·¯¸¦ ¹ß»ýÇÏÁö¾ÊÀ¸¸ç µðÆúÆ®·Î 0ÀÇ °ªÀÌ ÁÖ¾îÁý´Ï´Ù.

 

n                 public readonly int NORMAL_READONLY;

n                 ...

n                 Console.Write(" NORMAL_READONLY="+rt1.NORMAL_READONLY);

 

1 readonly »ó¼öÀÇ Æ¯Â¡

n                 readonly »ó¼ö´Â static Ű¿öµå¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

n                 readonly »ó¼ö´Â °ªÀ» ÇÒ´çÇÏÁö ¾Ê°í »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

n                 readonly »ó¼ö´Â »ý¼ºÀÚ¸¦ ÅëÇØ¼­ ·±Å¸Àӽà °ªÀÌ °áÁ¤µÉ ¼ö ÀÖ´Ù.

n                 Çѹø °ªÀÌ °áÁ¤µÇ¸é ´Ù½Ã´Â ±× °ªÀ» º¯°æÇÒ ¼ö´Â ¾ø´Ù.

 

¿©·¯ºÐÀÌ readonly¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇ ÇØ¾ß ÇÏ´Â °ÍÀº ´Ü Çѹø¸¸ ÃʱâÈ­¸¦ ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ ½ºÅÂÆ½ readonly¸¦ ÃʱâÈ­ ÇÒ ¶§ ½ºÅÂÆ½ »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­¸¦ ÇØ ÁØ °ÍÀÔ´Ï´Ù. ±×¸®°í ¸¸¾à ÀÏ¹Ý readonly Áï, ½ºÅÂÆ½ÀÌ ¾Æ´Ñ readonly¶ó¸é ÀÏ¹Ý »ý¼ºÀÚ¿¡¼­ ´Ü Çѹø¸¸ ÃʱâÈ­¸¦ ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. Áï, »ó¼öÀÇ ±âº» ¼ºÁúÀÎ Áߺ¹Çؼ­ °ªÀ» ¼³Á¤ÇÒ ¼ö ¾ø´Ù´Â °ÍÀÔ´Ï´Ù.

 

Áö±Ý±îÁö const »ó¼ö¿Í readonly »ó¼ö¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ¾Õ¿¡¼­ »ìÆìº» °Íó·³ readonly »ó¼ö´Â const »ó¼ö¿¡ ºñÇØ ¹Þ´Â Á¦¾àÀÌ ¾àÇϹǷΠ±× Ȱ¿ë ¹üÀ§°¡ ´õ Å®´Ï´Ù. ±×·¸´Ù°íÇØ¼­ readonly »ó¼ö°¡ »ó¼öÀÇ ¹üÁÖ¸¦ ¹þ¾î³¯ ¼ö´Â ¾ø½À´Ï´Ù. Á¦ ¾Æ¹«¸® ·±Å¸Àӽÿ¡ °ªÀÇ ÇÒ´çÀÌ ÀÌ·ç¾îÁø´Ù°í ÇØµµ »ó¼öÀÇ ¹üÁÖ¸¦ ¹þ¾î³¯ ¼ö´Â ¾ø´Â °ÍÀÔ´Ï´Ù.



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