大家好,碰到为方法传递参数的问题,希望有朋友能指点一下:
代码如下,在实例化的时候需要将方法传递过去.
class Class1
{
public Class1(Action<object> action, Func<object, bool> canDo)
{
.....
}
}public class Class2
{
......
public DO()
{
cmd = new Class1(Search, CanExecute);//实例化
}
public void Search(object parameter)
{.....}
public bool CanDo(object parameter)
{.....}
}我现在想在实例化cmd的时候能指定参数,这个应该怎样做呢?
代码如下,在实例化的时候需要将方法传递过去.
class Class1
{
public Class1(Action<object> action, Func<object, bool> canDo)
{
.....
}
}public class Class2
{
......
public DO()
{
cmd = new Class1(Search, CanExecute);//实例化
}
public void Search(object parameter)
{.....}
public bool CanDo(object parameter)
{.....}
}我现在想在实例化cmd的时候能指定参数,这个应该怎样做呢?
cmd = new Class1(Search, CanExecute);
应该改为
cmd = new Class1(Search, CanDO);
这2个方法都在下面声明了.
我现在想做的是,给它们指定参数.
是我晕了还是楼主被绕进去了,完成什么需求。
{
public Class1(Action<object> action, Func<object, bool> canDo,params object [] param)
{
.....
}
}param为可变参数
其实我是想在传递 action 和 canDO 的时候分别给他们指定参数,类似直接调用
action(name)
canDo(true)
public Class1(Action<object> action, Func<object, bool> canDo)构造中把传过来的方法存在delegate成员中..Class1中对应的调用 action 和canDo的方法怎么写的?
DisplayProcess(Filter);
//匿名委托
DisplayProcess(delegate(Process process) { return process.WorkingSet64 >= 20 * 1024 * 1024; });
//lambda表达式
DisplayProcess(process => process.WorkingSet64 >= 20 * 1024 * 1024);
private static void DisplayProcess(Predicate<Process> match)
{
foreach(var process in Process.GetProcesses())
{
}
}
private static bool Filter(Process process)
{
return process.WorkingSet64 >= 20 * 1024 * 1024;
}