当前位置:  开发笔记 > 编程语言 > 正文

处理抽象类和类型参数固有的类

如何解决《处理抽象类和类型参数固有的类》经验,为你挑选了0个好方法。

我有一个基本抽象类及其抽象类型参数:

public abstract class Database where T : DatabaseItem, new() {
  protected List _items = new List ();
  protected virtual void Read (string[] cols)   {
    T item = new T ();
    ...
}

public abstract class DatabaseItem {
  ...
}

然后我有许多固有的儿童课程:

public class ShopDatabase : Database {}
public class ShopItem : DatabaseItem {}

public class WeaponDatabase : Database {}
public class WeaponItem : DatabaseItem {}

...

现在,我想使用Dictionary来跟踪数据库以及使用DatabaseItem类型返回它们的方法,如下所示:

Dictionary> databases;

public static Database GetDatabase () where T: DatabaseItem {
  return databasebases [typeof (T)];
}

然后它给了我"'T'必须是一个非抽象类型,带有一个公共无参数构造函数,以便将它用作参数'T'"错误,因为DatabaseItem是抽象的.我将DatabaseItem设置为非抽象类型,错误消失但仍然出现了很多类型转换错误...

发现了类似的问题,但我还是不明白......

实现这一目标的更好的解决方案/结构是什么?

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有