Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 最小起订量不返回';行不通_C#_.net_Moq - Fatal编程技术网

C# 最小起订量不返回';行不通

C# 最小起订量不返回';行不通,c#,.net,moq,C#,.net,Moq,我试着让我的简单模拟工作,但它太乏味了。 我在这里犯了一个错误 (字符串s1,字符串s2)=>{return(字符串)(s1+s2);}) 消息说 “委托'System.Func'不接受2个参数” 但在文章中,一切都是有效的 我所有的代码都在这里 public interface IWriteTwoString { string WriteTwoStrings(string s1, string s2); } public MyPriceReducerTest() { Mock

我试着让我的简单模拟工作,但它太乏味了。 我在这里犯了一个错误

(字符串s1,字符串s2)=>{return(字符串)(s1+s2);})

消息说

“委托'System.Func'不接受2个参数”

但在文章中,一切都是有效的

我所有的代码都在这里

public interface IWriteTwoString
{
    string WriteTwoStrings(string s1, string s2);
}

public MyPriceReducerTest()
{
    Mock<IWriteTwoString> writeMock = new Mock<IWriteTwoString>(MockBehavior.Strict);
    writeMock.Setup(m => m.WriteTwoStrings(It.IsAny<string>(), It.IsAny<string>()))
       .Returns<string>((string s1, string s2) => { return (string)(s1 + s2); });
}
公共接口IWriteTwoString
{
字符串WriteTwoStrings(字符串s1、字符串s2);
}
公共MyPriceReducerTest()
{
Mock writeMock=newmock(MockBehavior.Strict);
Setup(m=>m.WriteTwoStrings(It.IsAny(),It.IsAny())
.Returns((字符串s1,字符串s2)=>{return(字符串)(s1+s2);});
}

您的问题在于表达式:
返回
,它告诉moq您的
WriteHostings
有一个字符串
参数,但您有两个因此您会得到一个错误

所以你需要写:

.Returns<string, string>((string s1, string s2) => { return (string)(s1 + s2); });

您还可以执行
.Returns((s1,s2)=>{…})并让编译器为lambda进行推断。任何一种方法都有效。关于上一个示例-我尝试写入返回-但该错误再次出现。@user1640532是否设置了相同的方法
字符串WriteTwoStrings(字符串s1,字符串s2)
?因为它应该与
返回一起工作
。如果出现相同的错误,可以使用新代码编辑和更新问题,也可以使用新问题创建新问题。
.Returns((string s1, string s2) => { return (string)(s1 + s2); });