.net 如何将调用传递给函数?
我需要将一个函数传递到另一个函数并在那里调用它。我使用以下代码:.net 如何将调用传递给函数?,.net,visual-studio-2010,c#-4.0,.net,Visual Studio 2010,C# 4.0,我需要将一个函数传递到另一个函数并在那里调用它。我使用以下代码: namespace DelegateTest { class Program { public class MySampleClass { public void click(string param) { System.Console.WriteLine(param + " click!");
namespace DelegateTest
{
class Program
{
public class MySampleClass
{
public void click(string param)
{
System.Console.WriteLine(param + " click!");
}
public void flick(string param)
{
System.Console.WriteLine(param + " flick!");
}
}
public static delegate void EventToWait(string param);
public static void waitFor(EventToWait myEvent, string param)
{
// here is a **very** complex loop, which i would like wipe from main() function
myEvent(param);
}
public static void Main(string[] args)
{
MySampleClass sc = new MySampleClass();
EventToWait ev1 = sc.click;
EventToWait ev2 = sc.flick;
waitFor(ev1, "Button_1");
waitFor(ev2, "Button_2");
System.Console.ReadKey();
}
}
}
但是我的编译器说,委托不能是静态的。如何处理此问题?好吧,只需删除
static
关键字:
public delegate void EventToWait(string param);
那么,只需删除
static
关键字:
public delegate void EventToWait(string param);
或者,您可以声明:
public static void waitFor(Action<string> myEvent, string param)
这避免了声明委托的需要。或者,您可以声明:
public static void waitFor(Action<string> myEvent, string param)
这避免了声明委托的需要