从外部类调用私有事件处理程序

时间:2010-06-17 14:28:56

标签: c# events private

我有两节课。 一个类(比如A)在c'tor中使用一个文本框。并使用私有事件处理程序方法注册TextChanged事件。 第二类(比如说B)通过提供一个文本框来创建A类的对象。

如何从B类调用A类的私有事件处理程序?

它还会注册MouseClick事件。

有没有办法调用私有事件处理程序?

3 个答案:

答案 0 :(得分:3)

简答:不要。

将您的事件处理程序声明为public,或者更好的是,创建一个公共代理方法,例如

public class MyClass 
{
  private myHandler....

  public returnType DoClick() { return myHandler(...); }  
}

直接访问私人会员会违背宣布私密会员的目的。

答案 1 :(得分:2)

创建一个事件处理程序和另一个类都可以调用的公共方法。通常,直接调用事件处理程序是个坏主意。仔细考虑一下你想要做什么,你应该能够找到一个更符合你想要做的概念的代码结构。您不希望其他类单击按钮;你希望你的其他班级做一些单击按钮也会做的事情。

答案 2 :(得分:0)

对私有方式订阅和私有订阅者的触发事件都没有限制。你到目前为止有没有错误?

相关问题