gpt4 book ai didi

c# - 从 ID(或名称)创建对象

转载 作者:行者123 更新时间:2023-11-30 13:39:43 26 4
gpt4 key购买 nike

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

  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(),如注释所示。我怎样才能做到这一点?

最佳答案

这行不通吗?

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);
}

关于c# - 从 ID(或名称)创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com