c# FsCheck 无法转换 lambda 表达式
c# FsCheck cannot convert lambda expression
我正在尝试使用 C# FsCheck 生成器来生成系列
用随机字符串初始化的命令。我想出了
以下解决方案:
public Gen<Command<A,B>> Next(B value)
{
var gen1 = Arb.Default.String().Generator;
var gen2 = Gen.two(gen1);
var gen3 = gen2.select((Command<A,B>)(s => new DerivedCommand(s.Item1,s.Item2)))
//DerivedCommand extends Command<A,B>
return Gen.OneOf(gen3);
}
但是,VS 无法构建此代码:
Cannot convert lambda expression to type Command<A,B> because it is not a delegate type
我已搜索此错误消息的解决方案,但没有找到任何帮助。
我正在使用 System.Linq 和 System.Data.Entity。非常感谢任何解决此问题的建议。
您正在尝试将 (s => new DerivedCommand(s.Item1,s.Item2))
(这是一个 lambda 表达式)转换为 (Command<A,B>)
(我假设)是 class。
您可能需要这样的东西:
var gen3 = gen2.select(s => (Command<A,B>)(new DerivedCommand(s.Item1,s.Item2)));
我正在尝试使用 C# FsCheck 生成器来生成系列 用随机字符串初始化的命令。我想出了 以下解决方案:
public Gen<Command<A,B>> Next(B value)
{
var gen1 = Arb.Default.String().Generator;
var gen2 = Gen.two(gen1);
var gen3 = gen2.select((Command<A,B>)(s => new DerivedCommand(s.Item1,s.Item2)))
//DerivedCommand extends Command<A,B>
return Gen.OneOf(gen3);
}
但是,VS 无法构建此代码:
Cannot convert lambda expression to type Command<A,B> because it is not a delegate type
我已搜索此错误消息的解决方案,但没有找到任何帮助。 我正在使用 System.Linq 和 System.Data.Entity。非常感谢任何解决此问题的建议。
您正在尝试将 (s => new DerivedCommand(s.Item1,s.Item2))
(这是一个 lambda 表达式)转换为 (Command<A,B>)
(我假设)是 class。
您可能需要这样的东西:
var gen3 = gen2.select(s => (Command<A,B>)(new DerivedCommand(s.Item1,s.Item2)));