如果使用命名静态方法,则不需要匿名委托。
static int Main(string[] args)
{
return Parser.Default.ParseArguments<SubmitProcessOptions, CancelProcessOptions, GetProcessOptions>(args).MapResult<SubmitProcessOptions, CancelProcessOptions, GetProcessOptions, int>(RunSubmitProcess, RunCancelProcess, RunGetProcess, HandleParseError);
}
static int RunSubmitProcess(SubmitProcessOptions submitProcessOptions)
{
Console.WriteLine($"ProcessKey: {submitProcessOptions.ProcessKey}");
foreach (var parameter in submitProcessOptions.Parameters)
{
Console.WriteLine($"Parameter: {parameter}");
}
return 0;
}
static int RunCancelProcess(CancelProcessOptions cancelProcessOptions)
{
Console.WriteLine($"ProcessKey: {cancelProcessOptions.ProcessKey}");
return 0;
}
static int RunGetProcess(GetProcessOptions getProcessOptions)
{
Console.WriteLine($"ProcessKey: {getProcessOptions.ProcessKey}");
return 0;
}
static int HandleParseError(IEnumerable<Error> errs)
{
//handle errors
return 1;
}