Как статические события сравниваются с нестатическими событиями в C #?

Я только что понял, что статические события существуют - и мне любопытно, как люди их используют. Интересно, насколько относительное сравнение выдерживает статические методы и методы экземпляра. Например, статический метод - это в основном глобальная функция.Но я всегда связывал события с экземплярами объектов , и мне трудно думать о них на глобальном уровне.

Вот код, на который можно сослаться, если он помогает объяснению:

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();
        }
    }
}
15
задан Aaron Anodide 12 August 2011 в 19:52
поделиться