Во время компиляции создается класс, наследующийся от MulticastDelegate. Там и определяются.
StackOverflow
Делегат:
namespace ConsoleApp;
public delegate int Factory();
IL код
// Type: ConsoleApp.Factory
// Assembly: ConsoleApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 158825C2-2E1C-449E-A72A-66768D48C2ED
// Location: /home/user/RiderProjects/ConsoleApp/ConsoleApp/bin/Debug/net6.0/ConsoleApp.dll
// Sequence point data and variable names from /home/user/RiderProjects/ConsoleApp/ConsoleApp/bin/Debug/net6.0/ConsoleApp.pdb
.class public sealed auto ansi
ConsoleApp.Factory
extends [System.Runtime]System.MulticastDelegate
{
.method public hidebysig specialname rtspecialname instance void
.ctor(
object 'object',
native int 'method'
) runtime managed
{
// Can't find a body
} // end of method Factory::.ctor
.method public hidebysig virtual newslot instance int32
Invoke() runtime managed
{
// Can't find a body
} // end of method Factory::Invoke
.method public hidebysig virtual newslot instance class [System.Runtime]System.IAsyncResult
BeginInvoke(
class [System.Runtime]System.AsyncCallback callback,
object 'object'
) runtime managed
{
// Can't find a body
} // end of method Factory::BeginInvoke
.method public hidebysig virtual newslot instance int32
EndInvoke(
class [System.Runtime]System.IAsyncResult result
) runtime managed
{
// Can't find a body
} // end of method Factory::EndInvoke
} // end of class ConsoleApp.Factory