[英]Can any one tell me if the example I have mentioned is an example of a callback mechanism
class B
{
public delegate void CallBack();
public event CallBacl cllBack;
void Publish()
{
cllBack();
}
}
class A
{
B b = new B();
b.cllBack += new CallBack(test_this)
public void test_this()
{
}
}
if (cllBack != null) cllBack();
一个警告,它让我有些痛苦:
b.cllBack += new CallBack(test_this)
当然,在a中添加了对b的引用,因此,即使您不再在其他任何地方使用b了,b仍然会被引用,并且不会被垃圾回收。
我认为这是一种更整洁的方法:
class A
{
private delegate B.CallBack myCallBack;
private B b = new B();
public A
{
myCallBack = new B.CallBack( test_this );
b.cllBack += myCallBack;
}
public void Close()
{
c.cllBack -= myCallBack;
}
}
简而言之,您在需要回调时注册,而在不再需要回调时注销。
心连心
马里奥
PS:请注意,您的b是ctor的本地对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.