Используйте делегат и обработчик событий два класса Deep C# ⇐ C#

Место общения программистов C#
Anonymous
Используйте делегат и обработчик событий два класса Deep C#

Сообщение Anonymous »

У меня есть FRM Form 1 , которая хочет отправить обработчик событий в класс Validate , которая хочет отправить его в Fithther в Engine . Однако, когда я пытаюсь это сделать, я получаю ошибку в классе Validate :
Cannot implicitly convert type 'Form_test.Validate.ProgressUpdate' to 'Form_test.Engine.ProgressUpdate'
Как я могу решить эту проблему? В связи с этим примером, C# делегат и обработчик событий между двумя классами, мой случай связан с использованием события того же в двух классах.namespace Form_test;

// Frm file

public partial class Form1 : Form
{
// Progress update in the form
protected void ProgressUpdate(string text)
{
base.Invoke((Action)delegate {
string time = DateTime.Now.ToString("HH:mm:ss");
string newStatusText = time + ": " + text;
//txtProgress.AppendText(newStatusText);
}); // end invoke
}

public void ValidateFiles()
{
Validate validate = new();
validate.Progress += ProgressUpdate;
validate.RunValidation();

}
}

// Class file Validate
internal class Validate
{
public delegate void ProgressUpdate(string text);
public event ProgressUpdate Progress;

public Validate() {}

public void RunValidation()
{
Engine testRun = new();
testRun.Progress += Progress; // Here - I want to send the progress to the next class
}
}

// Engine file that runs the input files
internal class Engine
{
public delegate void ProgressUpdate(string text);
public event ProgressUpdate Progress;

public Engine() {}

public void RunModel()
{
// Stuff....
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ep-c-sharp

Вернуться в «C#»