Comment les événements statiques se comparent-ils aux événements non statiques en C #?

Je viens de réaliser que les événements statiques existent - et je suis curieux de voir comment les gens les utilisent. Je me demande comment la comparaison tient jusqu'à la statique vs. méthodes d'instance. Par exemple, une méthode statique est fondamentalement une fonction globale. Mais j'ai toujours associé les événements avec des instances d'objets et j'ai du mal à penser à eux au niveau mondial.

Voici un peu de code pour vous y reporter si elle permet à une explication:

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();
        }
    }
}

source d'informationauteur Aaron Anodide