Почему вы объявляете два разных типа делегатов с одинаковой подписью? Объявите одиночный тип делегата (если вам действительно нужно - используйте семейства Func
и Action
, где это возможно) вне любых других классов и используйте его везде.
Вы должны знать, что когда вы пишете:
public delegate void SendInfo(string[] info);
, который действительно объявляет тип - и вы можете объявить этот тип непосредственно в пространстве имен; он не обязательно должен быть членом другого типа.