如何在C#中一个接一个地调用方法?

如何在C#中一个接一个地调用方法?,c#,delegates,C#,Delegates,我想调用Method2,然后调用Method1。我知道有多种方法可以做到这一点,比如Method1(Method2()) 但我只是尝试了下面的代码。 在下面的场景中,Method2未被调用。所以我只是想知道这个场景在哪里有用,为什么C#提供了这种机制 public delegate void Action(); public static void Method1(Action action) { } static void Main() { Method1(Method2);

我想调用
Method2
,然后调用
Method1
。我知道有多种方法可以做到这一点,比如
Method1(Method2())
但我只是尝试了下面的代码。 在下面的场景中,
Method2
未被调用。所以我只是想知道这个场景在哪里有用,为什么C#提供了这种机制

public  delegate void Action();
public static void Method1(Action action)
{

}

static void Main()
{
    Method1(Method2);
    return;
}

public static void Method2()
{ 

}
您应该在
Method1
中调用
action

...
public static void Method1(Action action)
{
    // do not forget to validate input for public methods
    if (null == action)  
        throw new ArgumentNullException("action");

    action(); // you should invoke action
}

Method2没有被调用,因为你没有在Method1中调用
操作
,你不需要自己的委托来执行
操作
,它是.NET 3.5附带的。那么为什么我需要在Method1中作为参数paas action,我可以在中直接调用Method2呢Method1@Vivek:当然可以,您可以直接调用Method2;我刚刚更正了你的代码。您可能希望将lambda作为操作传递<代码>例如()=>a==b?方法2():方法3()