eventos c#

C#
public class EventoArgs
{
  	public string Texto {get;}
  	public EventoArgs(string texto)
	{
    this.Texto = texto;  
	}  
}


public delegate void ManejadorEventosEjemplo(object sender, EventoArgs e)

  public class ClasePrueba
{
  public event ManejadorEventosEjemplo EventoEjemplo;
  
  protected virtual void LlamarEvento()
  {
    EventoEjemplo?.Invoke(this, new EventoArgs("Hola"));
  } 
}
Source

Also in C#: