如何在使用后使用System.Action

时间:2017-06-27 12:24:35

标签: c# delegates

我正在使用代理人在我的课程之间进行沟通,就像这样

 public event System.Action OnAdFinishedOk;

但是,每次订阅此活动时,在使用它之后,我都需要删除adsManager.OnAdFinishedOk -= Revivir;

如果我忘记取消订阅代表,我可以介绍错误

有没有办法订阅代理并在使用后使用订阅,所以我不需要取消订阅? (我对另一种方法持开放态度)

1 个答案:

答案 0 :(得分:2)

我有类似的情况,我解决它:

public void Register(Action action) {
    Action _action = null;
    _action = ()=> {
        action();
        OnAdFinishedOk -= _action;
    }
    OnAdFinishedOk += _action;
}

希望它有所帮助!