Код: Выделить всё
public interface IState where SD : IStateData {
T EnterState(InputData inputData, SD movementData) where T : IState;
}
public abstract class AMovementState : IState {
public abstract AMovementState EnterState(InputData inputData, MovementData movementData);
}
Код: Выделить всё
MovementData
Ошибка CS0425: ограничения для параметра типа AMovementState методаAMovementState.EnterState (InputData, MovementData)' должен соответствовать ограничениям для параметра типа T' метода интерфейсаIState.EnterState(InputData, MovementData)'. Вместо этого рассмотрите возможность использования явной реализации интерфейса (CS0425) (Assembly-CSharp)
Я думаю, что это проблема со стиранием типа, но я я не на 100%. Нужно ли мне переработать свой подход или я упускаю что-то глупое? В основном у меня есть опыт работы с Java.
Подробнее здесь: https://stackoverflow.com/questions/367 ... ure-issues