如何限制委托的方法数量

本文关键字:方法 何限制 | 更新日期: 2023-09-27 17:50:53

我有一个delegate,我希望它只能注册5次。我知道我可以设置delegate private,并编写AddRegister()方法来控制registered方法的数量。有其他想法吗?

如何限制委托的方法数量

您可以对委托对象使用GetInvocationList方法,然后对其调用Count方法

Mydel d1 = this.MyMethod;
int count = d1.GetInvocationList().Count();//Here count will be 1

此外,我更希望将注册与上述功能结合在一个类似于您在问题中提到的地方。通过这种方式,无论count <= 5条件在哪里注册,您都不必编写它。因此,它将更容易维护。

希望这能有所帮助。