我想拨打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()
{
}
答案 0 :(得分:1)
你应该在action
中调用 Method1
:
...
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
}