我有一个很多子类都继承的抽象类:
  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()都是非常重复的。我希望将对象"crawler“转换为被实例化的子类,并在switch语句的末尾调用crawler.Process(),如注释中所示。我该怎么做呢?
发布于 2012-06-08 02:58:04
这不管用吗?
foreach (var item in result)
{
    CrawlerBase crawler = null;
    switch (item.Type)
    {
        case "Trials":
            crawler = new Trials(); 
            break;
        case "Coverage":
            crawler = new Coverage();
            break;
        default:
            break;
    }
    if(crawler != null)
        crawler.Process(item.URL);
}https://stackoverflow.com/questions/10938067
复制相似问题