不使用方法名称调用方法

时间:2012-07-25 13:51:18

标签: c#

我最近看到了一些像这样的代码(调用代理人):

public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
    Debug.WriteLine(string.Format("Second watch: Method '{0}' on object '{1}' was invoked  and caught in order {2}.", input.MethodBase.Name, input.Target.GetType(),Order));
    return getNext()(input, getNext);

}

有人可以解释和/或发布解释此处发生的事情的链接。我知道正在调用Invoke(),但为什么在这种情况下名称是可选的?

1 个答案:

答案 0 :(得分:2)

GetNextHandler似乎是一个返回委托的委托。

因此调用它会产生一个委托,然后用两个参数调用它。

 public delegate void FooDelegate( int n );
 public delegate FooDelegate GetFooDelegate();

 public void Bar( GetFooDelegate getFoo ) {

      getFoo()( 5 );

 }