C# 从包含引用方法的委托访问对象

C# 从包含引用方法的委托访问对象,c#,C#,我需要知道是否可以访问包含委托引用的方法的底层对象 我知道委托中捕获了对象,因为调用方法时需要它。Adelegate引用它的目标。当然,静态方法没有目标,因此可能需要空检查 class Program { static void Main(string[] args) { var container = new Container(); Func<string> doSomething = container.DoSomething;

我需要知道是否可以访问包含委托引用的方法的底层对象


我知道委托中捕获了对象,因为调用方法时需要它。

A
delegate
引用它的目标。当然,静态方法没有目标,因此可能需要空检查

class Program
{
    static void Main(string[] args)
    {
        var container = new Container();

        Func<string> doSomething = container.DoSomething;

        Delegate d = doSomething;

        // This will be the container, but you need to cast.
        var c = (Container)d.Target;

        Console.Read();
    }
}

class Container
{
    public string DoSomething()
    {
        return "";
    }
}
类程序
{
静态void Main(字符串[]参数)
{
var container=新容器();
Func doSomething=container.doSomething;
代表d=剂量测定法;
//这将是容器,但您需要强制转换。
var c=(容器)d.Target;
Console.Read();
}
}
类容器
{
公共字符串DoSomething()
{
返回“”;
}
}

我不确定您想用它实现什么,但需要知道实现委托引用的目标类型可能是代码气味或设计问题的指示器。

我不太确定对象的实例是否在委托中捕获(我想你的意思是委托有一个对对象的引用)-如果是,为什么在调用委托时需要传入它?