Ser*_*pia 4 .net c# constructor
public class Parser
{
Downloader download = new Downloader();
HtmlDocument Page;
public Parser(string MovieTitle)
{
Page = download.FindMovie(MovieTitle);
}
public Parser(string ActorName)
{
Page = download.FindActor(ActorName);
}
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个构造函数,允许其他使用此库的开发人员轻松创建一个Parser对象,并在创建它之后立即加载相关的HtmlDocument.
问题在于构造函数不能以相同类型的参数存在两次.当然,我可以告诉两个参数之间的逻辑差异,但计算机不能.
怎么办呢?
Meh*_*ari 18
static改为使用几种方法:
public class Parser
{
Downloader download = new Downloader();
HtmlDocument Page;
private Parser() { } // prevent instantiation from the outside
public static Parser FromMovieTitle(string MovieTitle)
{
var newParser = new Parser();
newParser.Page = newParser.download.FindMovie(MovieTitle);
return newParser;
}
public static Parser FromActorName(string ActorName)
{
var newParser = new Parser();
newParser.Page = newParser.download.FindActor(ActorName);
return newParser;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |