use*_*682 0 c# generics ienumerable foreach class
我如何设置以下类,以便我可以有一个方法,它采用一个公共父类/接口,并允许我迭代任何子进程而不指定泛型类型?
public abstract class BaseClass
{ ??? }
public class ChildClass<T> : BaseClass
{
public List<T> SomeList;
???
}
ChildClass<int> childA = new ChildClass<int> ();
ChildClass<string> childB = new ChildClass<string> ();
public void IterateOverChild (BaseClass someChildClass)
{
foreach (var element in someChildClass.SomeList)
{
Console.WriteLine (element);
}
}
Run Code Online (Sandbox Code Playgroud)
让抽象类暴露一些访问子类之间通用的数据的方法,在这种情况下,是一个数据序列,其中每个对象可以是任何类型:
public abstract class BaseClass
{
public abstract IEnumerable Data { get; }
}
public class ChildClass<T> : BaseClass
{
public List<T> SomeList { get; set; }
public override IEnumerable Data { get { return SomeList; } }
}
Run Code Online (Sandbox Code Playgroud)