C# delegate problem передача данных между формами я получаю ошибку ' no overload for function matches delegate
I have 2 forms and am trying to pass data from one form to the sub form when I open the sub form. I have setup a delegate function to do this. It works fine if say I pass a byte array, but if I try to pass a structure array I get the 'no overload for function matches delegate' error. Main form: public partial class Form1 : Form { public delegate void delConfigure(ref busDeviceType[] device); //public delegate void delConfigure(ref byte[] deviceMessages); ........... ........... public struct busDeviceType { public string name; public UInt32 baudRate; public string file; public string format; } busDeviceType[] device; byte[] deviceMessages; public Form1() { ..... InitializeComponent(); ..... } private void setupToolStripMenuItem_Click(object sender, EventArgs e) { Configure frm = new Configure(); delConfigure del = new delConfigure(frm.FillListBox); del(ref this.device); //del(ref this.deviceMessages); frm.Show(); } ....... ....... } Sub Form: public partial class Configure : Form { public struct busDeviceType { public string name; public UInt32 baudRate; public string file; public string format; } public Configure() { InitializeComponent(); } public void FillListBox(ref busDeviceType[] d) //public void FillListBox(ref byte[] d) { .... } }
Что я уже пробовал:
Я попытался заменить структуру[] байтом [], и это работает (я закомментировал код со структурой и раскомментировал код byte [], который закомментирован в приведенном выше коде)
OriginalGriff
Ответ обновлен.
Richard Deeming
Вам не нужен делегат для вызова метода; просто вызовите метод напрямую:
Configure frm = new Configure(); frm.FillListBox(ref this.device); frm.Show();