ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 7장. 상수와 필드
    CLR Via C# 2022. 1. 23. 16:49

    상수

    상수는 절대 불변의 값에 대한 기호다. 상수 기호를 정의할 때는 그 값은 컴파일 시점에 알 수 있어야 한다.

    상수 값은 절대로 변하지 않기 때문에, 상수 값은 정적 멤버로서 취급된다. 상수 값을 선언하는 것은 메타데이터를 새로 만드는 것과 같다. 상수기호를 참조하는 코드가 있을때, IL코드 생성시 상수 기호를 검색해 상수의 실제 값을 IL코드에 직접 첨부한다. 그래서 실행시점에 상수 값에 대한 참조는 불가하다.

    결과적으로, 상수를 변경하는 경우, 그 상수를 참조하는 응용프로그램을 다시 컴파일 해줘야 한다.

    필드

    • static : 정적 필드의 경우, 타입 객체의 내부에 필드의 데이터를 할당할 때 동적 메모리를 필요로 하게 된다. 단 해당 타입을 참조하는 메서드가 JIT 컴파일 과정에서 한 개라도 존재할 때만 메모리를 필요로한다.
    • Instance (기본값,생략됨) : 인스턴스 필드의 경우, 타입을 이용한 인스턴스를 생성했을 때 인스턴스 객체의 내부에 필드의 데이터를 할당하는 과정에서 동적 메모리를 필요로 한다.
    • readonly : 읽기만 가능하게 하는 필드이며, 생성자를 통해 최초에만 값을 수정할 수 있다. 물론 인라인 초기화로도 수정이 가능하다.

    'CLR Via C#' 카테고리의 다른 글

    9장. 매개변수  (0) 2022.01.30
    8장. 메서드  (0) 2022.01.25
    6장. 타입과 멤버의 기본  (0) 2022.01.21
    5장. 기본, 참조, 값 타입  (0) 2022.01.17
    4장. 타입의 기초  (0) 2022.01.14
Designed by Tistory.