У меня есть тема, в которой я подписываюсь на методы, которые должны вызываться, когда происходит определенное событие в игре.Подсчитайте все подписки на предмет
public Subject<SomeEvent> TestSubject = new Subject<SomeEvent>();
Некоторые экземпляры подписываются на эту тему.
TestSubject.Subscribe(MyMethod);
Моя цель - подсчитать, сколько методов было подписано на этот предмет. Я видел несколько примеров с использованием расширения Count(), но мне нужно значение int как возвращаемое значение, поэтому я могу использовать его где-то еще, а Count() возвращает IObservable.
if (subjectCount > 0)
{
DoSomething();
}
Есть ли способ, чтобы получить число подписок на тему или мне нужно, чтобы следить за ними вручную (Общедоступный Int SubjectSubcriptions и добавление 1 каждый раз я подписываюсь метод)?
Похоже, что это приятное и чистое решение, будет ждать некоторых других решений, прежде чем принимать этот ответ. Благодаря ! – Snak
Это не плохое решение, но 'Subject' является одноразовым, поэтому эта реализация также должна быть 'IDisposable>' и должна поддерживать удаление хотя бы созданного объекта. –
Enigmativity
@ Энигматичность хорошая точка. Я обновил код. – CharlesNRice