я думаю, что Вы не хотите своих потребителей, добавляющих новые элементы в Ваш возврат. API должен быть ясен и завершен и если он возвращает массив, он должен возвратить точную структуру данных. Я не думаю, что это имеет какое-либо отношение к T на, говорят, а скорее возврат List<> вместо массива [] непосредственно
GetInvocationList
просто возвращает массив типа Delegate
, который не знает соответствующей подписи. Однако, вы можете привести каждое возвращаемое значение к вашему конкретному типу делегата:
foreach (MyDelegate action in multicast.GetInvocationList())
{
action.BeginInvoke(...);
}