gpt4 book ai didi

c# - 如何在 Microsoft Moles 中提供不带参数的用户定义委托(delegate)

转载 作者:太空狗 更新时间:2023-10-30 00:56:08 24 4
gpt4 key购买 nike

我想绕过内部方法调用,因此模拟了它。模拟方法委托(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 返回之前,您需要为 bc 变量赋值,并明确指定参数类型,如下所示:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com