我正在尝试调用下面的Func,但是我想要????其中的一部分要在调用时填写。
public void Publish(string topic)
{
...
// 'actions' is a List of delegates, defined as List<Delegate>
for (int i = 0; i < actions.Count; i++)
{
((Func<???>)actions[i])(); // Invokation
}
...
}
操作是这样添加的:
public void Subscribe<T>(string topic, Func<T> action)
{
...
actions.Add(action);
...
}
我不知道是什么???将会(因此我的问题)。可能是布尔值,字符串,整数,...如何执行此操作?我可以以某种方式基于要调用的操作的返回类型吗?
答案 0 :(得分:-1)
因此,最终使用上面的Lasse Vågsæther Karlsen's评论解决了该问题。所以代替
((Func<???>)actions[i])();
我通过写来呼吁行动
actions[i].DynamicInvoke(null);
正确调用了代表。