더북(TheBook)

35.6 생성자를 사용하여 읽기 전용 필드 초기화

필드를 정의할 때 readonly 키워드를 붙일 수 있습니다. 이렇게 만들어진 필드를 읽기 전용 필드라고 합니다. 읽기 전용 필드는 클래스의 생성자로만 초기화가 가능합니다. 생성자로 초기화한 후에는 상수와 마찬가지로 값을 변경할 수 없습니다.

> public class WhitchService
. {
.     private readonly string _serviceName; //읽기 전용 필드
.     public WhitchService(string serviceName)
.     {
.         _serviceName = serviceName;      //생성자로 초기화해서 사용 가능
.     }
.     public void Run() => Console.WriteLine($"{_serviceName} 기능을 실행합니다.");
. }
>
> var file = new WhitchService("[1] 파일 로그");
> file.Run();
[1] 파일 로그 기능을 실행합니다.
> var db = new WhitchService("[2] DB 로그");
> db.Run();
[2] DB 로그 기능을 실행합니다.

읽기 전용 필드는 클래스의 인스턴스를 생성할 때 넘어온 값에 따라 한 번 선언한 후 변경되지 않고 사용할 수 있는 기능을 만듭니다. 상수는 선언과 동시에 반드시 초기화해야 에러가 발생하지 않지만, 읽기 전용 필드는 선언과 동시에 초기화도 가능하고 선언한 후 생성자로 초기화할 수도 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.