Я только что понял, что статические события существуют - и мне любопытно, как люди их используют. Интересно, насколько относительное сравнение выдерживает статические методы и методы экземпляра. Например, статический метод - это в основном глобальная функция.Но я всегда связывал события с экземплярами объектов , и мне трудно думать о них на глобальном уровне.
Вот код, на который можно сослаться, если он помогает объяснению:
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();
}
}
}