Как проверить, если на событие еще не подписана?
Я занимаюсь рефакторингом большого приложения, в котором у меня есть подписка на Awake
, хотя звонков, не связанных с подпиткой, никогда не бывает, поэтому я хотел переместить вызов подписки в OnEnable
и добавить соответствующий вызов отмены подписки в OnDisable
, но мне сказали оставить его в Awake
, как это необходимо ...
Итак, Я думал о том, чтобы просто добавить это в OnEnable
, думая, что нет ничего плохого в том, чтобы иметь оба; это безопасно?
private void Awake()
{
buttonManager.RepeatBetPressed += FinishWaiting;
}
private void OnEnable()
{
buttonManager.RepeatBetPressed += FinishWaiting;
}
private void OnDisable()
{
buttonManager.RepeatBetPressed -= FinishWaiting;
}
Но теперь я хотел бы проверить в OnEnable
, была ли подписка уже выполнена в Awake
.
Какой код мне нужно вместо комментария в следующем?
private void Awake()
{
buttonManager.RepeatBetPressed += FinishWaiting;
}
private void OnEnable()
{
if ( /* not already subscribed in awake */ )
{
buttonManager.RepeatBetPressed += FinishWaiting;
}
else
{
return;
}
}
private void OnDisable()
{
buttonManager.RepeatBetPressed -= FinishWaiting;
}