gpt4 book ai didi

c# - 在 C# 中使用 Delegate 类调用构造函数

转载 作者:行者123 更新时间:2023-11-30 20:03:05 25 4
gpt4 key购买 nike

有一个方法定义如下:

public static void MyMethod(Delegate action, parames object[] parameters)
{
action.DynamicInvoke(parameters);
//Do something
}

到目前为止,此方法可以很好地接收具有任意数量参数的各种方法和函数,但我想知道是否有一种方法可以将构造函数作为委托(delegate)参数传递。

感谢您的帮助。

最佳答案

您必须围绕构造函数构造一个匿名函数,因为构造函数不能直接转换为委托(delegate)。 (这是因为构造函数不是实际创建对象的东西;newobj 指令创建对象,然后调用构造函数来初始化分配的内存。直接为构造函数创建委托(delegate)相当于call 指令,这对构造函数没有意义。)

例如,给定此类型:

class Foo {
public Foo(string str) { }
}

你可以这样做:

MyMethod(new Func<string, Foo>(str => new Foo(str)), "a string");

关于c# - 在 C# 中使用 Delegate 类调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814366/

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