-- C#

const vs readonly

어린왕자악꿍 2011. 5. 13. 10:31
C#에서 상수를 정의하는 방법은 const, readonly로 지정하는 두 방법이 있다.
여기서 const는 컴파일타임상수이고, readonly는 런타임상수라고 한다.

즉,
const는 변수의 정의 시 값을 지정하는 상수이고,
readonly는 클래스의 생성자에서 값을 지정하는 상수이다.

class UserMax
{
    public const int Max_Num = 1000;
    public readonly int Max_Line;
    public UserMax(int i) { Max_Line = i; }
}

UserMax um = new UserMax(500);

즉, 상수를 정의할 때 실행 중에 상수의 값이 정해지는 케이스를 만들기 위해 readonly라는 개념이 도입된 것이고,그 외의 상수는 const를 사용하면 된다. 실제로 const가 컴파일 시에 값이 정의되므로 수행속도가 약간 빠르다.

참조 : http://blog.naver.com/whtjddnr87?Redirect=Log&logNo=40126396708
참조 : http://blog.naver.com/knight50?Redirect=Log&logNo=80097560775