본문 바로가기
유니티 공부/C# 문법

C# - const와 readonly

by 코딩하는 돼징 2024. 4. 9.
반응형

const

const 값은 변수가 선언될 때 초기화 되며 이후에는 변경할 수 없다. 또한 자동으로 static의 특성을 갖는다. 마지막으로 const는 선언과 동시에 초기화 되어야한다. 만약에 안될 경우 컴파일 에러가 뜬다.

const int pi = 3.14;

readonly

초기화 이후에는 변경할 수 없지만 선언할 때 또는 클래스의 생성자에서 값을 할당할 수 있다.  자동으로 static되지 않는다.

마지막으로 변수는 선언시 초기화할 필요가 없이 생성자에서 초기화 할 수 있다. 이 변수는 런타임시 할당된다.

public class Piggy
{
    public readonly static int piggy_age;
    public readonly int piggy_weight;
    
    static Piggy()
    {
        piggy_age = 10;
    }
    
    Piggy()
    {
        piggy_weight = 30;
    }
}

public static void Main()
{
    // 별도의 메모리 할당 과정 없이 바로 사용
    Console.WriteLine(Piggy.piggy_age);
    // 별도의 메모리 할당 필요
    Pig pig = new Pig();
    Console.WriteLine(pig.piggy_weight);
}
반응형

댓글