Ошибка компилятора CS0123
Ни одна перегрузка для метода «метод» не соответствует делегату «делегат».
Не удалось создать делегат, поскольку не использовалась правильная сигнатура. Экземпляры делегата должны объявляться с такой же сигнатурой, как и в объявлении делегата.
Чтобы устранить эту ошибку, исправьте либо метод, либо сигнатуру делегата. Дополнительные сведения см. в разделе Делегаты.
Следующий пример приводит к возникновению ошибки 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 >>
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Нет перегруженного метода, который соответствует делегату
Что делать? — для начала указать что за ошибка и почему вы думаете, что каллбек для таймера вдруг будет принимать строку как параметр.
25 авг 2018 в 11:00
Нет перегруженного метода для «Switch», который соответствует делегату «TimerCallback»
25 авг 2018 в 11:12
Ну то есть вам прямо текстом написано что не так — сигнатура вашего Switch не совпадает с тем, что ожидает каллбек таймера. Согласно докам метод должен быть void и принимать параметр как object , а у вас вместо объекта — строка.
25 авг 2018 в 11:30
да и логика вашего Switch непонятна — почему вы решили, что таймер, которому дела нет до каких то команд, вдруг начнет посылать команды в метод Switch ? Он этого делать сам не будет, вам надо писать какую то доп логику для того, чтобы в ваш метод посылались команды, что вы хотите
25 авг 2018 в 11:32
ну тогда вам нужен метод, что принимает object как параметр (а уже в этом методе вызывайте что хотите) + вам надо будет сделать таймер полем класса, иначе GC его уничтожит. И это вроде все, что вам необходимо для решения вашей задачи.
C нет перегруженного метода который соответствует делегату
в чем ошибка компиляции??
Добавлено 08.03.11, 14:35
В идеале он должен менять местами поля Text кнопок, если в одном из полей пустая строка и если имя кнопки с которой предстоит обмен button15 или button12.
Вы че это на каждую кнопку вешаете свой код для смены??
Сообщ. #3 , 08.03.11, 14:35
Unregistered
Не удалось найти имя типа или пространства имён «EventHandler»
Добавлено 08.03.11, 14:37
Да, я не знаю как автоматизировать то, чтобы обмен разрешался только соседним кнопкам. Их в принципе всего 16 — так что это не большая проблема.
Сообщ. #4 , 08.03.11, 14:39

Рейтинг (т): 202
using System;
Сообщение отредактировано: maxim84_ — 08.03.11, 14:40
Сообщ. #5 , 08.03.11, 14:49
Unregistered
есть.
на другом форуме говорят, что это из-за
private void button17_Click(object sender, EventArgs e, Button _b)
Что надо Butto_b убрать. А где его тогда объявить?
Сообщ. #6 , 08.03.11, 14:56

Рейтинг (т): 202
конечно убрать. нет такого эвента
Что куда передать?? для чего этот аргумент вообще?
Добавлено 08.03.11, 15:02
ужасть ))
у вообще у контролов есть такая штука как Tag, он имеет тип object, а значит туда можно затолкать все что угодно, и использовать в наших целях. Итак:
всем кнопка программно задаем индекс в свойство Tag и попутно подсовываем обработчик нажатия:
C# Ошибка «Нет перегруженного метода . который соответствует делегату ..»
Здравствуйте, уважаемые программисты!
Обращаюсь к вам за помощью, особенно к Вам, Алексей aka kpblc (может вспомните меня, Вы этим маем в Инфарс г.Москва у нас преподавали курс)
Я инженер-технолог отдела САПР, который неудачно пожелал начать программировать под автокад)))
Начальство сразу поставило задачку (еще в начале лета) — адаптировать, созданную панельку для AutoCAD 2009-2011 (которая формирует таблицу экспликацию зданий и сооружений) под более поздние версии AutoCAD 2013. Код написан на C#, как мне объяснили на скорую руку. Если надо объяснить суть работы панельки, то постараюсь объяснить позже, но пока мне кажется может кто-то сможет и так сразу подсказать где копать..
В общем сейчас под 2011-й автокад панелька работает прекрасно. Под 13-й панель уже не работает, надо подключать другие библиотеки и т.д. Я вроде б всё нашла и заменила всё необходимое, из 60 ошибок и 100 предупреждений, осталась только одна ошибка — «Ошибка 38 Нет перегруженного метода для «docColDocDeact», который соответствует делегату «Autodesk.AutoCAD.ApplicationServices.DocumentCollectionEventHandler» ..\SAPRLibrary\Class1.cs»
Как помните, у меня совершенный ноль в програмировании на C#.. но, к сожалению, кроме как к вашему форуму, если честно обратиться не кому Понимаю, что может быть одного кода файла Class1.cs будет не достаточным и может спрашиваю элементарное, но все равно прошу вашей помощи. Спасибо!
using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Windows; using Autodesk.AutoCAD.Interop; namespace SAPRLibrary < public class Class1 : IExtensionApplication < Autodesk.AutoCAD.Windows.PaletteSet ps = null; System.Windows.Forms.UserControl myCtrlsnos = null; System.Windows.Forms.UserControl myCtrlpir = null; public void Initialize() < >public void Terminate() < >public void docBeginDocClose(object senderObj, DocumentBeginCloseEventArgs docBegClsEvtArgs) < if (this.ps != null) < this.ps.Visible = false; >> void docColDocDeact(object senderObj, DocumentCollectionEventArgs docColDocActEvtArgs) < if (this.ps != null) < this.ps.Visible = false; >> [CommandMethod("СНОС")] public void listSnos() < Document acDoc = Application.DocumentManager.MdiActiveDocument; Editor ed = acDoc.Editor; try < ed.WriteMessage("\n"); if (this.ps == null) < ed.WriteMessage("Загрузка панели САПР . \n"); this.ps = new Autodesk.AutoCAD.Windows.PaletteSet("Панель САПР"); this.ps.Style = PaletteSetStyles.ShowCloseButton | PaletteSetStyles.ShowAutoHideButton | PaletteSetStyles.ShowTabForSingle; this.ps.MinimumSize = new System.Drawing.Size(222, 500); //this.ps.Dock = DockSides.None; myCtrlsnos = new Snos(); this.myCtrlpir = new pir(); this.ps.Add("Учет ПИР", this.myCtrlpir); this.ps.Add("СНОС", myCtrlsnos); this.ps.Visible = false; acDoc.BeginDocumentClose += new DocumentBeginCloseEventHandler(docBeginDocClose); Application.DocumentManager.DocumentToBeDeactivated += new DocumentCollectionEventHandler(docColDocDeact); ed.WriteMessage("Загрузка выполнена\n"); >this.ps.Visible = !this.ps.Visible; > catch < ed.WriteMessage("Ошибка отображения панели"); >> [CommandMethod("ЗСНОС")] public void LoadCUI() < Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; object oldCmdEcho = Application.GetSystemVariable("CMDECHO"); object oldFileDia = Application.GetSystemVariable("FILEDIA"); Application.SetSystemVariable("CMDECHO", 0); Application.SetSystemVariable("FILEDIA", 0); try < doc.SendStringToExecute( "_.cuiload snos ", false, false, false ); doc.SendStringToExecute( "(setvar \"FILEDIA\" " + oldFileDia.ToString() + ")(princ) ", false, false, false ); doc.SendStringToExecute( "(setvar \"CMDECHO\" " + oldCmdEcho.ToString() + ")(princ) ", false, false, false ); >catch (Autodesk.AutoCAD.Runtime.Exception e) < ed.WriteMessage("Ошибка загрузки кнопки " + e.Message); >finally < ed.WriteMessage("СНОС установлен."); >> > >