#c_sharp
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 }
Ответы
Ответ 1
Вы можете разобрать ваш делегат на составные части при помощи GetInvocationList(). Вот пример: Action combined = () => Console.WriteLine("Func 1"); combined += () => Console.WriteLine("Func 2"); combined += () => Console.WriteLine("Func 3"); var actions = combined.GetInvocationList().Cast(); foreach (var a in actions) { a(); Console.WriteLine("-----"); } Но раз вам такое понадобилось, возможно, вы делаете что-то неправильно. Думаю, вам реально вместо Action D_For_reproduct_Functions нужно List D_For_reproduct_Functions, и ваш код будет иметь вид List D_For_reproduct_Functions = new List (); 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(); }
Комментариев нет:
Отправить комментарий