我有一个许多子类继承的抽象类:
public abstract class CrawlerBase
{
public abstract void Process(string url);
}
我正在处理这个循环:
foreach (var item in result)
{
object crawler = null;
switch (item.Type)
{
case "Trials":
var t = new Trials();
ct.Process(item.URL); //repetitive code.
break;
case "Coverage":
var c = new Coverage();
c.Process(item.URL); //repetitive code.
break;
default:
break;
}
// crawler.Process(item.URL);
}
现在 item.type 字符串将取决于需要实例化的子类。由于我的所有子类都继承了我的基类,因此在每个 case 语句中调用 .Process() 会非常重复。我想将对象“爬虫”转换为正在实例化的子类,并在 switch 语句的末尾调用 crawler.Process(),如注释所示。我怎样才能做到这一点?