C# 如何创建调用另一个泛型方法的委托的方法

本文关键字:泛型方法 另一个 方法 调用 何创建 创建 | 更新日期: 2023-09-27 17:56:00

我有这样的代码....

var x = inv.InvokeProxy<ServiceClient, AnotherType, ReturnType>(
    p => p.execute(input), guid);

我要做的是将上述所有代码封装到一个包含指定类型的委托中。

然后,我想创建另一个方法,该方法将真正调用上述方法。像这样的东西...

Func<a,b> func = delegate()
{
.... 1st code sample inserted here ...
}

然后我需要将 func 传递给另一个将调用它的方法,例如

protected TReturn InvokeDelegate<TReturn>(Func<> functionObject)
{
    return functionObject.Invoke();
}

有谁知道这是怎么做到的?

C# 如何创建调用另一个泛型方法的委托的方法

这实际上非常简单:

Func<TypeOfInput, Guid, TypeOfX> func = (input, guid) => 
                  inv.InvokeProxy<ServiceClient, AnotherType, ReturnType>(
                                             p => p.execute(input), guid);

像这样执行它:

TypeOfInput yourInput = ...;
Guid yourGuid = ...;
TypeOfX x = func(yourInput, yourGuid);