用未知的返回类型调用Func

时间:2018-10-05 10:51:06

标签: c# delegates func

我正在尝试调用下面的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);

        ...
    }

我不知道是什么???将会(因此我的问题)。可能是布尔值,字符串,整数,...如何执行此操作?我可以以某种方式基于要调用的操作的返回类型吗?

1 个答案:

答案 0 :(得分:-1)

因此,最终使用上面的Lasse Vågsæther Karlsen's评论解决了该问题。所以代替

((Func<???>)actions[i])();

我通过写来呼吁行动

actions[i].DynamicInvoke(null);

正确调用了代表。