Есть ли возможность вызывать функции с делегата по одной?

249
07 мая 2017, 22:38
        Action  D_For_reproduct_Functions;
        D_For_reproduct_Functions += ReproductExp;
        D_For_reproduct_Functions += ReproductArcSin;
        D_For_reproduct_Functions += ReproductNormal;
        D_For_reproduct_Functions += ReproductLaplasa;
        D_For_reproduct_Functions += ReproductReley;
        D_For_reproduct_Functions += ReproductVeibula;

Мне нужно что-то вроде такого

        for (int i = 0; i < D_For_reproduct_Functions.Length; i++)
        {
            D_For_reproduct_Functions[i]();
            KSKolvogorov();
            //и тут в будущем KSPirsona
        }
Answer 1

Вы можете разобрать ваш делегат на составные части при помощи GetInvocationList(). Вот пример:

Action combined = () => Console.WriteLine("Func 1");
combined += () => Console.WriteLine("Func 2");
combined += () => Console.WriteLine("Func 3");
var actions = combined.GetInvocationList().Cast<Action>();
foreach (var a in actions)
{
    a();
    Console.WriteLine("-----");
}

Но раз вам такое понадобилось, возможно, вы делаете что-то неправильно. Думаю, вам реально вместо Action D_For_reproduct_Functions нужно List<Action> D_For_reproduct_Functions, и ваш код будет иметь вид

List<Action> D_For_reproduct_Functions = new List<Action>();
D_For_reproduct_Functions.Add(ReproductExp);
D_For_reproduct_Functions.Add(ReproductArcSin);
D_For_reproduct_Functions.Add(ReproductNormal);
D_For_reproduct_Functions.Add(ReproductLaplasa);
D_For_reproduct_Functions.Add(ReproductReley);
D_For_reproduct_Functions.Add(ReproductVeibula);
for (int i = 0; i < D_For_reproduct_Functions.Count; i++)
{
    D_For_reproduct_Functions[i]();
    KSKolvogorov();
}
READ ALSO
task и нативный thread

task и нативный thread

здравствуйте, не могу понять что такое task с точки зрения операционной системы

271
Как в C# достать контент из кэша?

Как в C# достать контент из кэша?

Здравствуйте! Я новичок по c#, но хорошо знаю java

224
Как ускорить получение данных с API?

Как ускорить получение данных с API?

Теперь мне нужно пройтись по каждой записи с этих 19000, получить значение этой записи и после определить максимальное значение из этих 19000API...

294
Как подружить PHP и Sqldeveloper

Как подружить PHP и Sqldeveloper

Есть база данных на SqldeveloperУ меня есть задача создать кое-какой вебсервис

248