Как нормально пробросить данные в дочерние классы, используя ООП? Доброе время суток! Пытаюсь сделать ИИ по совести, чтобы и ООП был, и универсальный, но не получается. Тупо C# не позволяет мне сделать это даже с генериками. Цель - пробросить в реализацию интерфейса IBotBehaviour кастомную информацию, нужную лишь для данного поведения. Хотелось бы пробросить ее через конструктор или метод. Но так, чтобы ее было обязательно пробрасывать. Вот пример интерфейсов и реализаций: IBotBehaviour - интерфейс поведения, который должен обязывать передавать ему информацию. IBot - использует IBotBehaviour. IdleBehaviour - ничего не делает, следовательно инфа ему никакая не нужна. FollowBehaviour - требует 2 аргумента типа Positionу BotTest - использует попеременно разные поведения и пробрасывает в них совершенно разные параметры.Пример кодаpublic interface IBotBehaviour { void Process(); void Setup(); // ? } public interface IBot { void SetBehaviour(IBotBehaviour behaviour); } public class IdleBehaviour : IBotBehaviour { public void Process() { // wait 1s } public void Setup() { } } public class FollowBehaviour : IBotBehaviour { Position myPosition; Position targetPosition; public void Process() { // move my pos to target pos } public void Setup(Position myPosition, Position targetPosition) { this.myPosition = myPosition; this.targetPosition = targetPosition; } } public class BotTest : IBot { protected IBotBehaviour currentBehaviour; public void SetBehaviour(IBotBehaviour behaviour) { currentBehaviour = behaviour; } // call currentBehaviour.Process() in game cycle }