首页 > C# > 在c#中返回传递给方法的值

在c#中返回传递给方法的值

上一篇 下一篇

我在接口上有一个方法:

string DoSomething(string whatever);

我想用 MOQ 来模拟它,以便它返回传入的任何内容——例如:

_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) )
   .Returns( [the parameter that was passed] ) ;

有什么想法吗?

分割线

网友回答:

您可以将 lambda 与输入参数一起使用,如下所示:

.Returns((string myval) => { return myval; });

或者可读性稍强:

.Returns<string>(x => x);

分割线

网友回答:

更有用的是,如果您有多个参数,则可以使用以下方法访问任何/所有参数:

_mock.Setup(x => x.DoSomething(It.IsAny<string>(),It.IsAny<string>(),It.IsAny<string>())
     .Returns((string a, string b, string c) => string.Concat(a,b,c));

您始终需要引用所有参数以匹配方法的签名,即使您只打算使用其中一个参数。

分割线

网友回答:

通用方法可以很好地处理这种情况。Returns<T>

_mock.Setup(x => x.DoSomething(It.IsAny<string>())).Returns<string>(x => x);

或者,如果该方法需要多个输入,请按如下所示指定它们:

_mock.Setup(x => x.DoSomething(It.IsAny<string>(), It.IsAny<int>())).Returns((string x, int y) => x);

模板简介:该模板名称为【在c#中返回传递给方法的值】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 174次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-09
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信文章 微信图片 微信公众平台 html5 自适应 微信模板 企业网站 响应式 微信素材 单页式简历模板
您可能会喜欢的其他模板