我有 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# 相当陌生。
也许Action
是您正在寻找的:
public xx(Action a)
{
a();
}
xx(()=> Process.Start("notepad.exe", @"C:\\Output\Log.txt"));
将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"));
试试这个:
public xx(Action a) {
}
xx(() => Process.Start("notepad.exe", @"C:\Users\Programmer\Documents\Visual Studio 2012\Projects\Key Logger\Output\Log.txt"));
更多信息:lambda 表达式,委托教程