C# 我们可以将void方法与MapResult C结合使用吗#

C# 我们可以将void方法与MapResult C结合使用吗#,c#,parsing,console-application,C#,Parsing,Console Application,我试图在控制台应用程序的Main()方法中使用void方法和mapreult方法。下面是我的代码,Class1、Class2和Class3继承了AbstractClass并实现了它的Execute()方法: Parser.Default.ParseArguments< 第一类, 第2类, Class3>(命令分割(“”)) .MapResult((抽象类o)=>o.Execute(),err=>null); 在上面的代码中,我的Execute()方法返回void。我收到以下错误: 方法的类型参

我试图在控制台应用程序的Main()方法中使用void方法和mapreult方法。下面是我的代码,Class1、Class2和Class3继承了AbstractClass并实现了它的Execute()方法:

Parser.Default.ParseArguments<
第一类,
第2类,
Class3>(命令分割(“”))
.MapResult((抽象类o)=>o.Execute(),err=>null);
在上面的代码中,我的Execute()方法返回void。我收到以下错误:

方法的类型参数 'ParserResultExtensions.MapResult(ParserResult,Func, 无法从用法推断Func,TResult>)”。 尝试显式指定类型参数

但是,如果我将Execute()方法的返回类型更改为int,它就可以正常工作


请向我推荐一些将void returning方法与mapreult一起使用的解决方案。

假设您使用的是CommandLineParser(),mapreult要求您提供一个指示成功/失败的返回值。试试这个:

.MapResult((AbstractClass o) => {o.Execute(); return 1;}, err => null);
.MapResult((AbstractClass o) => {o.Execute(); return 1;}, err => null);