У меня есть абстрактный класс с несколькими или многими (от 1 до 16) общими параметрами, например, так:
public abstract class ComponentSystem<F1> : ComponentSystemBase
where F1 : IComponent
{ }
public abstract class ComponentSystem<F1, F2> : ComponentSystemBase
where F1 : IComponent
where F2 : IComponent
{ }
public abstract class ComponentSystem<F1, F2, F3> : ComponentSystemBase
where F1 : IComponent
where F2 : IComponent
where F3 : IComponent
{ }
public abstract class ComponentSystem<F1, F2, F3, F4> : ComponentSystemBase
where F1 : IComponent
where F2 : IComponent
where F3 : IComponent
where F4 : IComponent
{ }
Теперь у меня есть базовый класс, который содержит список типов, таких какИтак:
public abstract class ComponentSystemBase
{
public List<Type> Filters { get; private set; }
public abstract void Init();
public abstract void Update();
protected internal void PopulateFilterList(Type[] filters)
{
// oneliner?
foreach (Type filter in filters)
{
Filters.Add(filter);
}
}
}
Теперь мой вопрос: как мне получить все универсальные параметры в массиве типов, чтобы я мог передать его своей функции, которая добавляет ее в список?
Есть ли функция для получения всех общих параметров, нужно ли делать это вручную для каждого класса?
Если что-то неясно, дайте мне знать, чтобы я мог уточнить!