可以,但是关键是OP希望使用通用的DGV来显示数据。因此,如果OP具有一个公共的抽象类,甚至是要从其继承的基类,那么这将简化产生这些对象的集合的过程。一旦将对象收集到集合中,就可以轻松地将它们显示在DGV中。
最简单的方法是缺少实现一个类来跟踪每种对象类型的每个实例并将需要呈现的数据转换为DGV的格式或公共对象的类。
DGV需要一个集合,那么为什么不将必需的属性烘烤到基类中,然后将它们添加到适合DGV的集合类型中呢?
问候,
BTW,基于标题"概念性帮助单个类别中的不同类别
列表 <>?",抽象或基类直接支持List的想法<AbstractDataSource>。这使OP可以拥有他们要查找的单个列表。
namespace Abstract
{
class Program
{
static void Main(string[] args)
{
MyClass c = new MyClass();
c.Iterate();
Console.Read();
}
}
abstract class AbstractDataPublisher
{
public abstract string MyData { get; }
}
class Class1 : AbstractDataPublisher
{
string data;
public override string MyData
{
get
{
return data;
}
}
public Class1()
{
data = "Class1.Tada!";
}
}
class Class2 : AbstractDataPublisher
{
int data;
public override string MyData
{
get
{
return string.Format("Class{0}.Tada!", data.ToString());
}
}
public Class2()
{
data = 2;
}
}
class Class3 : AbstractDataPublisher
{
double data;
public override string MyData
{
get
{
return string.Format("Class{0}.Tada!", data.ToString());
}
}
public Class3()
{
data = 3d;
}
}
class MyClass
{
List<AbstractDataPublisher> myList;
public MyClass()
{
myList = new List<AbstractDataPublisher>();
myList.Add(new Class1());
myList.Add(new Class2());
myList.Add(new Class3());
}
public void Iterate()
{
foreach (var item in myList)
{
Console.WriteLine(item.MyData);
}
}
}
}