我有一个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#很新。
答案 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"));