访问派生类中的事件的选项有限?
我正在重构一个类,并将部分移至基类中。
我有一些类似于
public event EventHandler GridBinding;
现在在基类中的事件,但我发现我现在无法检查该事件在我的派生类中是否为空。这样做会给我带来错误:
事件'xyz.GridBinding'只能 出现在 += 或的左侧 -=(除非在类型“xyz._MyBaseClass”中使用)。
这是正确的吗?我是否遗漏了任何内容,或者有什么方法可以解决这个问题,或者编写访问器是执行此操作的唯一方法吗? 我正在使用 c#/.net 4.0
Im refactoring a class, and moving sections into a base class.
I have a few events similar to
public event EventHandler GridBinding;
Which are now in the base class, but i am finding i cannot now check to see if the event is null in my derived class. Doing so gives me the error:
The event 'xyz.GridBinding' can only
appear on the left hand side of += or
-= (except when used from within the type 'xyz._MyBaseClass').
Is this correct, am i missing anything, or is there any way to get around this or is writing an accessor the only way to do this?
I am using c#/.net 4.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,你无法回避这个问题。
正确的方法是在包含事件的类中声明受保护的方法,以便您可以根据需要从任何派生类激发它们。
No, you cannot get around this.
The proper way is to declare protected methods in the class containing the events, so you can fire them from any derived class, if needed.