는 :이 필드가 비공개로 선언되고 읽기 전용 인 이유는 무엇입니까? 다음 코드에서
public class MovieRepository : IMovieRepository
{
private readonly IHtmlDownloader _downloader;
public MovieRepository(IHtmlDownloader downloader)
{
_downloader = downloader;
}
public Movie FindMovieById(string id)
{
var idUri = ...build URI...;
var html = _downloader.DownloadHtml(idUri);
return ...parse ID HTML...;
}
public Movie FindMovieByTitle(string title)
{
var titleUri = ...build URI...;
var html = _downloader.DownloadHtml(titleUri);
return ...parse title HTML...;
}
}
I asked for something to review my code, 누군가는이 방법을 제안했다. 내 질문은 왜 IHtmlDownloader 변수가 읽기 전용입니까?
빙고. 읽기 전용 인 경우 객체 초기화 또는 생성자에서만 설정할 수 있습니다. 필요하지는 않지만 코드 품질의 일부로 오류가 발생할 수있는 범위가 제한됩니다. –
Eric의 대답은 좋았지 만 Cylon이 초기화 및 생성자에서 읽기 전용 필드 만 변경할 수 있다고 말할 때까지는 의미가 없습니다. 고마워요! –
컴파일러와 JITter가 생성 후 값이 고정된다는 것을 알고 특정 최적화를 수행 할 수 있다는 추가 이점이 있습니다. –