Цепочка вызовов и передача аргументов - 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()
- {
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д