Цепочка вызовов и передача аргументов - C#
Формулировка задачи:
Если делегат ссылается на цепочку методов (в примере ниже на методы one и two), то всем методам передается начальное значение аргумента? Эксперимент показывает, что да. В связи с этим вопрос, есть ли способ передачи начального значения аргумента из предыдущего метода в списке в следующий?
using System; class DemoSystem { delegate int StrOp(ref int str); static int one(ref int x) { return x + 1; } static int two(ref int x) { return x + 2; } static void Main() { StrOp deleg = one; deleg += two; int x = 1; x = deleg(ref x); Console.WriteLine(x); } }
Решение задачи: «Цепочка вызовов и передача аргументов»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication19 { delegate void MyDelegate(); class Program { static void Main(string[] args) { MyDelegate md = new MyDelegate(One); md += Two; md += Three; md.Invoke(); md.Invoke(); md.Invoke(); foreach (Delegate d in md.GetInvocationList()) { Console.WriteLine(d.Method.Name); } Console.ReadLine(); } static void One() { } static void Two() { } static void Three() { } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д