我有一个基本抽象类及其抽象类型参数:
public abstract class Database<T> where T : DatabaseItem, new() {
protected List<T> _items = new List<T> ();
protected virtual void Read (string[] cols) {
T item = new T ();
...
}
public abstract class DatabaseItem {
...
}
Run Code Online (Sandbox Code Playgroud)
然后我有许多固有的儿童课程:
public class ShopDatabase : Database<ShopItem> {}
public class ShopItem : DatabaseItem {}
public class WeaponDatabase : Database<WeaponItem> {}
public class WeaponItem : DatabaseItem {}
...
Run Code Online (Sandbox Code Playgroud)
现在,我想使用Dictionary来跟踪数据库以及使用DatabaseItem类型返回它们的方法,如下所示:
Dictionary<Type, Database<DatabaseItem>> databases;
public static Database<T> GetDatabase<T> () where …Run Code Online (Sandbox Code Playgroud) c# inheritance abstract-class type-conversion type-parameter