【发布时间】:2011-08-12 19:52:46
【问题描述】:
我刚刚意识到存在静态事件 - 我很好奇人们如何使用它们。我想知道相对比较如何支持静态与实例方法。例如,静态方法基本上是一个全局函数。但我总是将事件与对象的实例相关联,而我在全局层面考虑它们时遇到了麻烦。
这里有一些代码可以参考,如果它有助于解释:
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();
}
}
}
【问题讨论】:
标签: c# events static-members