[英]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.