作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想绕过内部方法调用,因此模拟了它。模拟方法委托(delegate)如下所示:
public Microsoft.Moles.Framework.MolesDelegates.OutOutFunc<string,string,string,
byte[]> GetlineStringStringOutStringOut { set; }
现在,在我的测试中,当我尝试访问这个模拟方法时:
GetlineStringStringOutStringOut = (a,b,c) => {return bytearray};
发生错误,指出参数 2 和 3 必须使用 out 关键字声明,但是当我使用 out 关键字声明它们时,它根本无法编译。我阅读了其他 SO 问题和答案,但似乎无法完成。
是否可以为此提供用户定义的委托(delegate)?如果是,请举例说明。
编辑:
我试图声明我自己的委托(delegate)与模拟委托(delegate)具有相同的签名
static delegate byte[] MyFunc<String, String, String>
(string a, out string b, out string c);
但我不确定在调用模拟委托(delegate)方法时如何调用它?
最佳答案
在从 lambda 返回之前,您需要为 b
和 c
变量赋值,并明确指定参数类型,如下所示:
GetlineStringStringOutStringOut = (string a, out string b, out string c) =>
{
b = c = string.Empty;
return new byte[] { };
};
关于c# - 如何在 Microsoft Moles 中提供不带参数的用户定义委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472863/
我是一名优秀的程序员,十分优秀!