Interface-Events可以显式实现。例如,我们可以pass delegates to another Event。
此处TestHandler
- 事件被SomeHandler
包裹(不确定它是否是正确的术语) - 实现ISomeHandleable
- 接口的事件。
public delegate void HandlerDelegate();
public interface ISomeHandleable
{
event HandlerDelegate SomeHandler;
}
public class Test : ISomeHandleable
{
event HandlerDelegate ISomeHandleable.SomeHandler
{
add { TestHandler += value; }
remove { TestHandler -= value; }
}
public event HandlerDelegate TestHandler;
public void Fire() => TestHandler?.Invoke();
}
我刚刚看到,我们也可以按如下方式实施ISomeHandleable.SomeHandler
:
event HandlerDelegate ISomeHandleable.SomeHandler
{
add { }
remove { }
}
但是我还没有找到任何文档和可能的用例,我也不明白它的作用。
我只知道,代理仍然可以添加到ISomeHandleable.SomeHandler
,但不再可以通过类Test
调用该事件。
但是,您可以使用空的访问者定义事件,它的作用是什么以及如何使用它?