У меня есть абстрактный класс с именем StatesHandler
с обобщенным c типом T
. В этом классе у меня есть делегат, который вызывается из класса:
public abstract class StatesHandler<T>
{
public event Action<StatesHandler<T>> OnStatesChanged;
private void Function(){
OnStatesChanged(this);
}
}
У меня есть реализация этого абстрактного класса, где State
- это перечисление:
public class MyStatesHandler : StatesHandler<State>{}
В третьем классе я добавляю слушателя к этому делегату:
public class MyThirdClass
{
private MyStatesHandler myStatesHandler;
private void AddListener()
{
myStatesHandler.OnStatesChanged += StateChanged;
}
private void StateChanged(StatesHandler<State> statesHandler)
{
}
}
Мой вопрос заключается в том, почему добавляемая к слушателю функция должна иметь подпись StatesHandler<State>
, а не просто MyStatesHandler
?
Не должны ли оба работать?