всем привет, только что начал изучать делегаты. имеется такой пример:
// Класс, метод которого будет сообщен с делегатом.
static class MyClass
{
// Создаем статический метод, который планируем сообщить с делегатом.
public static void Method()
{
Console.WriteLine("Строку вывел метод сообщенный с делегатом.");
}
}
// На 21-й строке создаем класс-делегата с именем MyDelegate,
// метод, который будет сообщен с экземпляром данного класса-делегата,
// не будет ничего принимать и не будет ничего возвращать.
public delegate void MyDelegate(); // Создаем класс делегата. (1)
class Program
{
static void Main()
{
MyDelegate myDelegate = new MyDelegate(MyClass.Method); // Создаем экземпляр делегата. (2)
myDelegate.Invoke(); // Вызываем метод сообщенный с делегатом. (3)
myDelegate(); // Другой способ вызова метода сообщенного с делегатом. (3')
// Delay.
Console.ReadKey();
}
}
обратите внимание, на данную строку:
public delegate void MyDelegate(); // Создаем класс делегата. (1)
данный курс предоставляется в виде видео-уроков, автор говорит следующее:
"обратите внимание, что метод (конструктор по умолчанию в нашем классе-делегате), который будет сообщен с этим экземпляром данного класса-делегата -
ничего не должен принимать , и также
ничего не должен возвращать "
вот мой вопрос: то, что конструктор по умолчанию класса-делегата :
ничего не должен принимать , и также ничего не должен возвращать " - это аксиома для всех делегатов при из создании,
или это конкретный случай из-за того, что данный делегат, в данном случае сообщен с таким методом:
public static void Method()
{
Console.WriteLine("Строку вывел метод сообщенный с делегатом.");
}
- который ничего не принимает в качестве параметров и является void т.е ничего не возвращает, и не повлиял ли данный метод на принципы построения делегата и параметры его конструктора?
Т.е в итоге это либо
- общая аксиома
- конкретный случай построения класса-делегата сообщенного с данным методом
вот в качестве ответа я хочу получить разъяснение и ответ, что из двух вариантов является верным.