C#:有没有办法确保只能通过事件访问对象?

0 c# events

有没有办法创建某种只允许通过事件访问对象的接口?

Mat*_*kon 15

你不能只定义一个只包含事件的接口吗?

例如:

interface IExample
{
    event EventHandler Event1;
    event EventHandler Event2;
}

class Obj : IExample
{
    public event EventHandler Event1;
    public event EventHandler Event2;
}
Run Code Online (Sandbox Code Playgroud)

用法:

IExample obj = new Obj();
obj.Event1 += Event1_Handler;
obj.Event2 += Event2_Handler;
Run Code Online (Sandbox Code Playgroud)