我有一个功能:
private static Response WaitForAPIReply(Func<Response> f)
{
while (true)
{
var response = f();
if (response.MISSING == "WAIT")
{
Console.WriteLine("WAIT");
Thread.Sleep(TimeSpan.FromSeconds(0.1));
}
else
{
return response;
}
}
}
我将WaitForAPIReply
称为:
private static Response GetTestData(int a, string b)
{
return WaitForAPIReply(() => GetData(a, b));
}
我想在out
中添加一个GetData
参数,并在WaitForAPIReply
函数中使用它。但是我无法为此修改WaitForAPIReply
?
我通过网络搜索可以看到我可以使用委托。但我将参数作为参数传递给WaitForAPIReply
答案 0 :(得分:1)
为什么要修改WaitForAPIReply
?请注意,现在GetData
有两个参数,但在f()
内的WaitForAPIReply
调用中,它们不会在任何地方使用。 out
参数应在GetTestData
内的某处声明,以便您可以将其传递到GetData
。
// First approach
private static Response GetTestData(int a, string b)
{
int c;
return WaitForAPIReply(() => GetData(a, b, out c));
}
// Second approach
private static Response GetTestData(int a, string b, int c)
{
return WaitForAPIReply(() => GetData(a, b, out c));
}