首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过ID (或名称)创建对象

通过ID (或名称)创建对象
EN

Stack Overflow用户
提问于 2012-06-08 02:52:28
回答 5查看 205关注 0票数 3

我有一个很多子类都继承的抽象类:

代码语言:javascript
运行
复制
  public abstract class CrawlerBase
    {
        public abstract void Process(string url);
    }

我正在处理这个循环:

代码语言:javascript
运行
复制
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(),如注释中所示。我该怎么做呢?

EN

Stack Overflow用户

发布于 2012-06-08 02:58:04

这不管用吗?

代码语言:javascript
运行
复制
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);
}
票数 4
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10938067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档