Цепочка вызовов и передача аргументов - 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()
{
}
}
}