委托版本 class A { public void foo() { Console.WriteLine("A.foo()"); new B().bar(this.CallBack); } public void CallBack() { Console.WriteLine("A.Callback()"); } }class B { public void bar(Action a) { Console.WriteLine("B.bar()"); a(); } }
delegate void M(); class A { public M m; } class B { public void m() { Console.WriteLine("B.m()"); } } static void Main(string[] args) { A a = new A(); B b = new B(); a.m = b.m; a.m(); }
class A
{
public void foo()
{
Console.WriteLine("A.foo()");
new B().bar(this.CallBack);
} public void CallBack()
{
Console.WriteLine("A.Callback()");
}
}class B
{
public void bar(Action a)
{
Console.WriteLine("B.bar()");
a();
}
}
“delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m”-----这句话是我在网上看到的,我的理解是:类B等于是拥有了方法m。在另一个类c中可直接new一个类B,然后用B.m直接调用。你觉得这样的想法可以实现吗
class A
{
public M m;
}
class B
{
public void m()
{
Console.WriteLine("B.m()");
}
}
static void Main(string[] args)
{
A a = new A();
B b = new B();
a.m = b.m;
a.m();
}