Поделиться через


Ошибка компилятора CS0123

Обновлен: Ноябрь 2007

Сообщение об ошибке

Перегрузка для 'метод' не совпадает с делегатом 'делегат'
No overload for 'method' matches delegate 'delegate'

Сбой попытки создания делегата из-за того, что не была использована правильная подпись. Экземпляры делегата должны быть объявлены с такой же подписью, как и объявление делегата.

Для устранения ошибки можно изменить либо метод, либо подпись делегата. Дополнительные сведения см. в разделе Делегаты (руководство по программированию на C#).

Следующий пример приводит к возникновению ошибки CS0123.

// CS0123.cs
delegate void D();
delegate void D2(int i);

public class C
{
   public static void f(int i) {}

   public static void Main()
   {
      D d = new D(f);   // CS0123
      D2 d2 = new D2(f);   // OK
   }
}