![]() |
1
3
问题是
如果向事件添加处理程序,它将创建一个新的
当我写作的时候,
有两种正确的方法可以做到这一点。 我可以创建自己的调用包装器事件的处理程序,如下所示:
另一种方法是在包装器中创建一个自定义事件,将其处理程序添加到内部类的事件中,如下所示:
注意,这并不完全是线程安全的。 我自己解决了这个问题,并为有类似问题的人张贴了问题和答案。 |
![]() |
2
3
这个 your answer -这里有两个问题… 第一:在这两种情况下,您都是用错误的发送者引发外部事件。订阅外部类上的事件的人希望这些类使用 发件人 是那个阶级的。 这在WinForm控件或绑定列表实现等方面尤其重要,其中 发件人 用于标识共享处理程序的多个处理程序之间的对象。 而应该是这样的:
第二个(小得多)问题是,即使外部类没有订户,您当前也在取出内部类上的事件。你可以用更多的自定义处理来解决这个问题…
(以及内部get/set中的类似代码,仅当我们有侦听器时才订阅…。
如果您有许多外部类的实例,但很少使用事件,那么这可能是一个很大的节省程序。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |