Внутри класса у меня есть следующая структура
private struct StateGroup<TState> where TState : struct, IAgentState
{
// ...
// ComponentDataArray requires TState to be a struct as well!
public ComponentDataArray<TState> AgentStates;
// ...
}
и несколько объектов этого типа
[Inject] private StateGroup<Foo> _fooGroup;
[Inject] private StateGroup<Bar> _barGroup;
[Inject] private StateGroup<Baz> _bazGroup;
// ...
с атрибутом Inject
, отмечающим цель для автоматического внедрения зависимости.
Внутри класса мне нужно вызывать один и тот же кусок кода для каждого StateGroup
объекта, и я хочу добавить все в коллекцию и выполнить итерации по ней. Однако я не могу определить любую коллекцию типа StateGroup<IAgentState>[]
, так как для нее требуется необязательный параметр типа , и я не должен удалять структуру из предложения where , поскольку ComponentDataArray
из StateGroup
требует структуру как хорошо!
Помимо написания метода, который я вручную вызываю дюжину раз для каждого StateGroup
объекта, есть ли разумный способ добавить их в коллекцию и вызвать этот конкретный метод для каждого элемента?