0

我有 ac# 程序,我想做一个看起来像这样的方法

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

然后我想打电话:

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

然后让它这样做。我不知道这样的事情是否可以完成,我对 c# 相当陌生。

4

3 回答 3

2

也许Action是您正在寻找的:

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

xx(()=> Process.Start("notepad.exe", @"C:\\Output\Log.txt"));
于 2013-07-09T00:02:07.700 回答
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"));
于 2013-07-09T00:02:42.553 回答
1

试试这个:

public xx(Action a) {
}

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

更多信息:lambda 表达式委托教程

于 2013-07-09T00:03:16.063 回答