Pau*_*ter 8 .net c# events event-handling
如果有以下内容:
public static void main() {
MyClass1 obj = new MyClass1();
obj.Method1();
}
public class MyClass1() {
public void Method1() {
MyClass2 obj = new MyClass2();
obj.Method1();
}
}
public class MyClass2() {
public void Method1() {
MyClass3 obj = new MyClass3();
obj.Method1();
}
}
public class MyClass3() {
public void Method1() {
// Raise event here that is handled in MyClass1?
}
}
Run Code Online (Sandbox Code Playgroud)
可以MyClass3.Method1()提出一个处理的事件MyClass1吗?
如果我想实现这一点,将如何编写事件处理代码?
事件处理 ABC 假定您有订阅者和发布者。因此,您可能希望 MyClass3 具有公共事件,而 MyClass1 订阅此事件。
然而,在您的特定代码中,这种复杂性没有任何意义 - 最简单的方法就是使用回调函数:
public static void main() {
MyClass1 obj = new MyClass1();
obj.Method1();
}
public class MyClass1{
public void Method1() {
MyClass2 obj = new MyClass2();
obj.Method1(MyEventHandler);
}
public void MyEventHandler() {
//...
}
}
public class MyClass2{
public void Method1(Action callback) {
MyClass3 obj = new MyClass3();
obj.Method1(callback);
}
}
public class MyClass3{
public void Method1(Action callback) {
// Raise event here that is handled in MyClass1?
callback();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1725 次 |
| 最近记录: |