¿Cómo se comparan los eventos estáticos con los eventos no estáticos en C #?
xisten @i eventos estáticos acabo de dar cuenta - y estoy curioso cómo la gente los usa. Me pregunto cómo la comparación relativa se mantiene con los métodos estáticos frente a los de instancia. Por ejemplo, un método estático es básicamente una función global. Pero siempre he asociado eventos coninstancias de objetos y tengo problemas para pensar en ellos a nivel mundial.
Aquí hay un código para consultar si ayuda a una explicación:
void Main()
{
var c1 = new C1();
c1.E1 += () => Console.WriteLine ("E1");
C1.E2 += () => Console.WriteLine ("E2");
c1.F1();
}
// <<delegate>>+D()
public delegate void D();
// +<<event>>E1
// +<<class>><<event>>E2
// +F()
// <<does>>
// <<fire>>E1
// <<fire>>E2
public class C1
{
public void F1()
{
OnE1();
OnE2();
}
public event D E1;
private void OnE1()
{
if(E1 != null)
{
E1();
}
}
static public event D E2;
static private void OnE2()
{
if(E2 != null)
{
E2();
}
}
}