Код скомпилирован и успешно выполнен, но ожидаемый вывод - "Sub" не печатается. В чем ошибка в этом коде?

В чем проблема в этом коде?

namespace ConsoleApplication1
{
public delegate void del();

class Program
{
    static void Main(string[] args)
    {
        del d = new del(add);
        d += sub;
    }

    public static void add()
    {
        Console.WriteLine("add");
    }

    public static void sub()
    {
        Console.WriteLine("Sub");
    }
  } 
}

1 ответ

Решение

Вам необходимо вызвать вашего делегата:

class Program
{
    static void Main(string[] args)
    {
        del d = new del(add);
        d += sub;

        d.Invoke();
    }

    public static void add()
    {
        Console.WriteLine("add");
    }

    public static void sub()
    {
        Console.WriteLine("Sub");
    }
  } 
}
Другие вопросы по тегам