C#中被委托的方法必须是静态的吗

2025-04-14 03:38:17
推荐回答(1个)
回答1:

不是。可以绑定静态方法也可以绑定实例方法。

你绑实例方法时,必须声明方法所属的对象(实例)

public delegate void MyFun();

class A
{
    public void Show()
    {
        Console.Write("this");
    }
}

static void Main(string[] args)
{
    A a = new A();
    MyFun f = new MyFun(a.Show);
    f();
    Console.ReadKey();
}

其实f.Target的属性就是指向的对象,而你用static的方法,这里是null