我正在尝试开发一个例程,该例程将运行 sql 语句并使用结果来填充从抽象类派生的类对象,如下所示:
public static List<T> PopulateList<T>(string sql)
{
List<T> list = new List<T>();
// get sql data
foreach (row in resultset)
{
list.Add(new T(row));
}
return list;
}
抽象类(即“T”)的构造函数调用抽象/虚拟方法,当然,该方法将被覆盖,并且对于每个派生类可能会有所不同。
问题在于,C# 不允许创建和填充抽象类对象,即使它表示并将用于派生类对象。
我怎样才能做到这一点?
我尝试过设计例程,但还没有找到让它发挥作用的方法。
your text
问题在于,C# 不允许创建和填充抽象类对象,即使它表示并将用于派生类对象。
确实如此。所以你有
MyAbstractClass
和一些 abstract
方法。您可以实现一个 class
来扩展您的 MyAbstractClass
并以某种虚拟方式实现 abstract
方法,并使用这个 MyDerivedClass
来代替。