我正在尝试在控制台应用程序的Main()方法中使用带有MapResult方法的void方法。以下是我的代码,Class1,Class2和Class3继承了AbstractClass并实现了它的Execute()方法:
Parser.Default.ParseArguments<
Class1,
Class2,
Class3>(command.Split(' '))
.MapResult((AbstractClass o) => o.Execute(), err => null);
在上面的代码中,我的Execute()方法返回void。我收到以下错误:
方法的类型参数 'ParserResultExtensions.MapResult(ParserResult,Func, Func,TResult&gt;)'不能从用法中推断出来。 尝试明确指定类型参数。
但是,如果我将Execute()方法的返回类型更改为int,它可以正常工作。
请建议我使用MapResult的void返回方法的一些解决方案。
答案 0 :(得分:1)
假设您正在使用CommandLineParser(https://github.com/commandlineparser/commandline),MapResult要求您提供指示成功/失败的返回值。试试这个:
.MapResult((AbstractClass o) => {o.Execute(); return 1;}, err => null);