如何提供一个用户定义的委托与微软摩尔参数

本文关键字:微软 参数 定义 何提供 用户 一个 | 更新日期: 2023-09-27 18:17:28

我想绕过内部方法调用,因此模拟了它。模拟的方法委托看起来像:

public Microsoft.Moles.Framework.MolesDelegates.OutOutFunc<string,string,string,
byte[]> GetlineStringStringOutStringOut { set; }

现在,在我的测试中,当我尝试访问这个模拟方法时,如:

GetlineStringStringOutStringOut = (a,b,c) => {return bytearray};

出现一个错误,说参数2和3必须用out关键字声明,但当我用out关键字声明它们时,它根本不编译。我看了其他的问题和答案,似乎这是不可能的。

是否有可能为此提供用户定义的委托?是,请举例说明

编辑:

我试图声明我自己的签名与模拟委托相同的委托

static delegate byte[] MyFunc<String, String, String>
(string a, out string b, out string c);

,但我不知道我怎么能调用这个,而调用模拟委托方法?

如何提供一个用户定义的委托与微软摩尔参数

您需要在从lambda返回之前为bc变量赋值,并明确指定参数类型,如下所示:

GetlineStringStringOutStringOut = (string a, out string b, out string c) => 
{ 
    b = c = string.Empty;
    return new byte[] { };
};