using System; namespace _Project.Develop.Runtime.Utils.ReactiveManagement { public class Subscriber : IDisposable { private Action _action; private Action _onDispose; public Subscriber(Action action, Action onDispose) { _action = action; _onDispose = onDispose; } public void Dispose() => _onDispose?.Invoke(this); public void Invoke() => _action?.Invoke(); } public class Subscriber : IDisposable { private Action _action; private Action> _onDispose; public Subscriber(Action action, Action> onDispose) { _action = action; _onDispose = onDispose; } public void Dispose() => _onDispose?.Invoke(this); public void Invoke(T arg1) => _action?.Invoke(arg1); } public class Subscriber : IDisposable { private Action _action; private Action> _onDispose; public Subscriber(Action action, Action> onDispose) { _action = action; _onDispose = onDispose; } public void Dispose() => _onDispose?.Invoke(this); public void Invoke(T arg1, K arg2) => _action?.Invoke(arg1, arg2); } }