Вы объявляете подпись метода и имя типа делегата, когда вы объявляете делегата в классе. Например, вы знаете, что хотите вызвать этот метод из своего объекта с некоторой подписью, но не знаете, какой именно, поэтому вы можете назначить его программно.
Вот код, который может помочь вам понять.
class Program
{
static void Main(string[] args)
{
Methoddef md=new Methoddef();
DelDec.Initdel d = md.process; //you create variable of delegate type Initdel and asign this variable
var obj = new DelDec();
obj.Init = d; //assign delegate to class instance
obj.Init("Test");
}
public class DelDec
{
//Declares a delegate for a void method that takes an string parameter.
public delegate void Initdel(String s);
public Initdel Init;
}
public class Methoddef
{
public void process(string s)
{
Console.WriteLine("The message passed is " + s);
}
}
}
Также хорошо, если вы прочитаете это https://msdn.microsoft.com/ru-ru/library/system.delegate(v=vs.110).aspx
Итак, на вашем первом изображении DelDec.Initdel
- тип делагата, на вашем втором изображении obj.Initdel
это поле, в котором вы можете назначить делегированный метод come.
Я надеюсь, что мой ответ поможет вам.