У вас есть класс к примеру
namespace WindowsFormsApp1
{
public delegate void GetMessage(string message);
public class EventTest
{
public event GetMessage _msg;
public void Test(int a)
{
if(a > 3)
{
_msg?.Invoke($"{a} > 3");
}else
{
_msg?.Invoke("Не понятно");
}
}
}
}
В рамках namespace объявлен делегат с типом void и входящим параметром string.
В самом классе есть событие и обычный метод, который при входящем параметре int проводит сравнение и для вывода информации ссылается на событие созданное выше .
Вот форма.
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
EventTest test = new EventTest();
public Form1()
{
InitializeComponent();
test._msg += Test__msg;
}
private void Test__msg(string message)
{
label1.Text = message;
}
private void button1_Click(object sender, EventArgs e)
{
int a = Int32.Parse(textBox1.Text);
test.Test(a);
}
}
}
На форме подписывается событие и при возникновении события в классе, передается на форму.
Почитайте еще
здесь, тут примеры есть.