Ser*_*pia 29 .net c# interface readonly
在以下代码中:
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...;
}
}
Run Code Online (Sandbox Code Playgroud)
我要求审查我的代码,有人提出了这种方法.我的问题是为什么IHtmlDownloader变量只读?
Eri*_* J. 46
如果它是私有的readonly,那么好处是你不能在初始化之后无意中将它从该类的另一部分更改.所述readonly改性剂可以确保字段只能在其初始化过程中或在其类构造函数被给出的值.
如果在初始化之后功能上不应该改变某些东西,那么使用可用的语言结构强制执行它总是很好的做法.