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