c# - 将动态参数传递给类似的函数

标签 c# .net

我有一个运行其他函数(内部函数)的函数。所以每个内部函数都是主函数的步骤。 每次内部函数结束运行时,我都必须更新进度。每个内部函数都接受当前进度作为参数,我手动执行此操作。

问题是我有大约 10 个主函数,而每个主函数的内部函数数量都在变化。

有没有办法在此流程中引入某种动态值?

例子:

public void Run() {
DoWork1(33);
DoWork2(66);
Dowork3(100);
}

public void Run() {
DoWork1(25);
DoWork4(50);
Dowork5(75);
Dowork2(100);
}

最佳答案

这不是真的清楚你的意思,但也许你想要:

public void Run(params Action<int>[] actions)
{      
    for (int i = 0; i < actions.Length; i++)
    {
        Action<int> action = actions[i];
        int progress = ((i + 1) * 100) / actions.Length;
        action(progress);
    }
}

然后调用它:

Run(DoWork1, DoWork2, DoWork3);

Run(DoWork1, DoWork4, DoWork5, DoWork2);

关于c# - 将动态参数传递给类似的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152563/

相关文章:

c# - Unity 处理多个具有不同目的的碰撞器

c# - 如果默认接口(interface)方法是在 C# 8.0 中实现的,为什么我还需要抽象类?

.net - 当访问间隔时间很长时,使 ASP.NET IIS 网站保持响应

c# - 如何将byte []视为Int16 []?

c# - ToolStripContainer 中的工具栏不保持其位置

c# - 为值类型实现 operator++ 的正确方法是什么?

c# - 将 List<Object> 转换为 ObservableCollection<Object> 的最佳方式

c# - 没有 ASP.NET 标识的 .NET Core 外部身份验证

c# - 命名空间在 C# 中是必不可少的吗?

.net - 链接到链接到静态库的静态库