需要操作作为变量的c#类

时间:2013-07-08 23:59:05

标签: c# methods execute

我有一个c#程序,我想制作一个看起来像这样的方法

 public xx(??? a)
 {
     a.execute();
 }

然后我想打电话:

xx(Process.Start(“notepad.exe”,@“C:\ Users \ Programmer \ Documents \ Visual Studio 2012 \ Projects \ Key Logger \ Output \ Log.txt”));

然后让它做到这一点。我不知道这样的事情是否可以实现,我对c#很新。

3 个答案:

答案 0 :(得分:2)

也许Action正是您所寻找的:

public xx(Action a)
{
  a();
}

xx(()=> Process.Start("notepad.exe", @"C:\\Output\Log.txt"));

答案 1 :(得分:1)

Action类型用于无参数委托:

public xx(Action a) {
  a();
}

没有什么可以将方法调用转换为委托,编译器只希望该方法返回委托。您可以使用lambda表达式轻松创建委托:

xx(() => Process.Start("notepad.exe", @"C:\Users\Programmer\Documents\Visual Studio 2012\Projects\Key Logger\Output\Log.txt"));

答案 2 :(得分:1)

试试这个:

public xx(Action a) {
}

xx(() => Process.Start("notepad.exe", @"C:\Users\Programmer\Documents\Visual Studio 2012\Projects\Key Logger\Output\Log.txt"));

更多信息:lambda expressiondelegate tutorial