У меня есть следующий сценарий, когда я извлекаю набор объектов типа BaseObject. Я разбил их по типам Object1 и Object2.Наследование общего объекта
Теперь у меня есть два класса (Plugin1 и Plugin2), которые обрабатывают этот список в соответствии с конкретным типом типа i.e типа Object1 или типа Object2.
Как вы можете видеть в коде, мне нужно было объявить разные списки в соответствующих классах.
В базовом классе установлен способ замедления? Мне все же нужно иметь возможность обрабатывать списки в соответствии с их типом в их соответствующих классах, то есть плагине1 и плагине2.
public class BaseObject {}
public class Object1 : BaseObject {}
public class Object2 : BaseObject {}
public interface IPlugin
{
void Process();
}
public class BasePlugin : IPlugin
{
protected MyManager _manager;
public BasePlugin(MyManager manager)
{
this._manager = manager;
}
public virtual void Process() { }
}
public class Plugin1 : BasePlugin
{
private List<Object1> _list;
public Plugin1(MyManager manager, List<Object1> list)
: base(manager)
{
_list = list;
}
public override void Process()
{
base.Process();
}
}
public class Plugin2 : BasePlugin
{
private List<Object2> _list;
public Plugin2(MyManager manager, List<Object2> list)
: base(manager)
{
_list = list;
}
public override void Process()
{
base.Process();
}
}
Может ли ваш список не иметь тип «BaseObject» - если нет, то наследование BaseObject может оказаться неприемлемым. – Paddy
Нет списка не может быть типа BaseObejct. – JEPAAB