gpt4 book ai didi

c# - 我可以使用 List 作为方法指针的集合吗? (C#)

转载 作者:太空狗 更新时间:2023-10-29 20:48:11 25 4
gpt4 key购买 nike

我想创建一个要执行的方法列表。每个方法都有相同的签名。我考虑过将委托(delegate)放入通用集合中,但我一直收到此错误:

'method' is a 'variable' but is used like a 'method'

理论上,这是我想做的:

List<object> methodsToExecute;

int Add(int x, int y)
{ return x+y; }

int Subtract(int x, int y)
{ return x-y; }

delegate int BinaryOp(int x, int y);

methodsToExecute.add(new BinaryOp(add));
methodsToExecute.add(new BinaryOp(subtract));

foreach(object method in methodsToExecute)
{
method(1,2);
}

关于如何实现这个的任何想法?谢谢!

最佳答案

您需要将列表中的 object 转换为 BinaryOp,或者更好的是,为列表使用更具体的类型参数:

delegate int BinaryOp(int x, int y);

List<BinaryOp> methodsToExecute = new List<BinaryOp>();

methodsToExecute.add(Add);
methodsToExecute.add(Subtract);

foreach(BinaryOp method in methodsToExecute)
{
method(1,2);
}

关于c# - 我可以使用 List<T> 作为方法指针的集合吗? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/135451/

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