티스토리 뷰

C#에서의 키워드 readonly와 const는 값을 변경할 수 없다는 같은 특징을 가지고 있다.


const int a = 1;


readonly int b = 2;



하지만 차이점이 있다면 


readonly키워드가 붙은 변수의 경우 생성자에서의 변경을 허용한다.

const키워드의 경우 변수 선언시 명시적(생성자X)으로 값을 저장하여야 한다.


readonly인스턴스 선언시 초기화 되지만 

const컴파일 할때 초기화 된다.



아래는 두 readonly와 const의 비교 소스코드이다.

class ProgramEx 
    { 
        readonly int ri = 5; 
        const int ci = 4; 
         

        public ProgramEx() 
        { 
            this.ri = 3; 
            //this.ci = 3; //ci는 생성자에서 초기화 할 수 없고 변수선언시 명시적으로 선언해줘야 한다. 
            Console.WriteLine("ri=" + this.ri + "\n" + "ci=" + ci); 
        } 

        static int ReadInt() 
        { 
            //return ri;  
            //readonly키워드 변수 ri는 인스턴스생성시 할당되는 변수이기 때문에 static메서드에서는 사용을 할 수 없다. 
            return ci; 
        } 

    }


Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday