我有两个类(classA和classB),它们都继承自同一个类(classC)。现在我需要创建继承A或B列表的新泛型类(classAA)。是否可以在classAA中调用classC的方法。
public class classC
{
//...
}
public class classA : classC
{
//...
}
public class classB : classC
{
//...
}
public class classAA<T> : List<T>
{
//...
}
答案 0 :(得分:0)
我相信你想要这样的东西。 Assumming:
class classC
{
public void DrawObject() { }
}
你可以在T
上约束它classC
或其衍生物:
class classAA<T> : List<T> where T : classC
{
public void SomeMethod()
{
foreach (var item in this.Cast<classC>())
{
// here you can call item.DrawObject()
}
}
}
答案 1 :(得分:0)
从List<T>
继承通常不是一个好主意。 95%的时间你应该更喜欢组合而不是继承。例如,请参阅:Why not inherit from List<T>?
很可能你正在寻找类似的东西:
public class classAA<T>
where T : ClassC
{
public List<T> MyList { get; set; }
public void Foo()
{
foreach (var item in this.MyList)
{
item.MethodOfClassC();
}
}
}