【发布时间】:2026-02-12 21:30:02
【问题描述】:
好的,我有一些从基类派生的不同对象,我已经将它们中的一堆放在了一个列表中。我想遍历列表并将每个推送到一个方法。我对每个人的类型签名都有单独的方法,但是编译器在抱怨。有人可以解释为什么吗?这是使用泛型的机会吗?如果是,如何使用?
class Base { }
class Level1 : Base { }
class Level2 : Level1 { }
...
List<Base> oList = new List<Base>();
oList.Add(new Level1());
oList.Add(new Level2());
...
...
foreach(Base o in oList)
{
DoMethod(o);
}
...
void DoMethod(Level1 item) { }
void DoMethod(Level2 item) { }
我做错了什么?
【问题讨论】:
-
我不确定它是否清楚,如果
DoMethod实际上是 Base、Level1、Level2 上的方法,我认为存在误解?你能澄清一下吗? -
@Will P 对,对不起;我在外部处理对象,所以,不,DoMethod(s) 不是这些类的成员。
标签: c# overloading derived-class