컴파일타임 상수 vs 런타임 상수 

변수와 달리 한번 정의해 둔 값으로서 더 이상 변경할 필요가 없는 것들을 의미한다.(ex 원주율)


Const  컴파일타임에 처리 (컴파일 타임에 변수가 값으로 대체된다)

    • 선언 시 반드시 그 값을 할당해야 한다. (변수를 정의할 때 초기화되고 그 이후로는 변경할 수 없다.)
    • Const는 내장된 숫자형, enum, 문자열, null에 대해서만 사용될 수 있다. (내장 자료형이어야만 컴파일 타임에 상수를 리터럴로 대체할 수 있기 때문)
    • Const 상수는 선언시 자동으로 Static 키워드가 추가된다

    Readonly - 런타임에 처리 (런타임에 값이 평가된다. 상수에 대한 참조로 컴파일 된다.)

      • 선언 시 반드시 값을 할당하지 않아도 된다.
      • Readonly는 모든 자료형에 대해 사용 가능하다.
      • Readonly는 변수 정의 이후에 생성자에서 한번 더 초기화 할 수 있으며 그 이후에는 수정 불가하다.

    Readonly 는 변수를 통해 값을 참조하기 때문에 Const보다 느리다.
    하지만 성능차이가 미미하기 때문에 대부분의 경우 유연성을 위해 Readonly를 사용하는 것이 좋다.


    'Programming > C++, C#' 카테고리의 다른 글

    [C#] Delegate , Event  (0) 2018.06.06
    [C#] Out vs Ref  (0) 2018.06.06
    [C#] 박싱과 언박싱  (0) 2018.06.06
    [C#] 암시적 변환 vs 명시적 변환  (0) 2018.06.05
    [C#] 값 타입 vs 참조 타입  (0) 2018.06.05

    + Recent posts