Привет, я использую Visual Studio 2005 (потому что мне нужна компактная поддержка фреймворка), и моя проблема связана с дженериками.Как преобразовать класс с общим типом в класс с объектом как общий тип в C#
Я создал абстрактный класс AbstractDAO, который моя база
От этого я создаю другие классы, как DocumentDAO, HeaderDAO и т.д., которые представляют различные таблицы на моей базе данных
То, что я хочу сделать, это получить определенное количество вышеупомянутых классов DAO, но как AbstractDAO (абстрактный класс имеет ряд конкретных реализаций, которые я хотел использовать)
То, что я пытался это
AbstractDAO<object> dao = new DocumentDAO();
AbstractDAO<object> dao = (AbstractDAO<object>)new DocumentDAO();
AbstractDAO<T> dao = new DocumentDAO();
мне нужно выше, потому что я создал функцию, которая передает данные из одной таблицы в другую аналогичную таблицу в другой базе данных, так что это будет (если он работал) пойти что-то вроде этого
AbstractDAO<object> dao_local = new DocumentDAO(local_database);
AbstractDAO<object> dao_remote = new DocumentDAO(remote_database);
do_transfer(dao_local,dao_remote)
void do_transfer(AbstractDAO<object> from, AbstractDAO<object> to) {
List<object> items = from.get_all();
to.insert(items);
}
Есть ли любой способ сделать это?
Чувак - как Вы excepct, чтобы иметь возможность присвоить значение типа B к переменной типа A (по крайней мере, это то, что делает ваша первая строка ..) – Marty
Это похоже на основы C#: AbstractDOA doa = new DocumentDOA(); или – Marty
Это будет работать только если вы класс, как иерархия: – Jens