gpt4 book ai didi

c# - 任何方法类型的委托(delegate) - C#

转载 作者:可可西里 更新时间:2023-11-01 03:05:16 25 4
gpt4 key购买 nike

我想要一个可以执行任何外部方法的类,如下所示:

class CrazyClass
{
//other stuff

public AnyReturnType Execute(AnyKindOfMethod Method, object[] ParametersForMethod)
{
//more stuff
return Method(ParametersForMethod) //or something like that
}
}

这可能吗?是否有采用任何方法签名的委托(delegate)?

最佳答案

您可以通过 Func<T> 以不同的方式执行此操作和关闭:

public T Execute<T>(Func<T> method)
{
// stuff
return method();
}

然后调用者可以使用闭包来实现它:

var result = yourClassInstance.Execute(() => SomeMethod(arg1, arg2, arg3));

这里的好处是你允许编译器为你完成繁重的工作,方法调用和返回值都是类型安全的,提供智能感知等。

关于c# - 任何方法类型的委托(delegate) - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15771653/

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