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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы