在Android中,我可以像这样使用侦听器:
Class1.java:
public class Class1 {
public Class1() {
Class2 c = new Class2();
c.setOnFinishListener(new Class2.OnFinishListener() {
@Override
void onFinish(String result) {
// My result's handling here
}
});
}
}
Class2.java:
public class Class2 {
private OnFinishListener mOnFinishListener;
public void setOnFinishListener(OnFinishListener onFinishListener) {
mOnFinishListener = onFinishListener;
}
private void someMethod() {
String result="Result here";
if (mOnFinishListener != null) mOnFinishListener.onFinish(result);
}
public interface OnFinishListener {
void onFinish(String result);
}
}
这样的东西在C#中可用吗?如何使用C#在这样的类之间实现通信?
在C#中推荐的方法是使用事件:
public class Class1
{
public Class1()
{
var c = new Class2();
c.OnFinish += result =>
{
// My result handling here
};
}
}
public class Class2
{
public event Action<string> OnFinish;
private void SomeMethod()
{
string result = "Result here";
var eventHandler = this.OnFinish;
if (eventHandler != null)
{
eventHandler(result);
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句