用委托变量会让客户端Main方法里可以直接调用 用事件则提高了封装性
class Program
{
static void Main(string[] args)
{
Pub p = new Pub();
Sub s = new Sub();
p.NumberChange += new NuberChangeEventHand(s.OnNumberChanged);
p.DoSomeThing();
p.NumberChange(100);
Console.ReadKey();
}
}
public delegate void NuberChangeEventHand(int count);
public class Pub {
private int count;
public NuberChangeEventHand NumberChange;
//public event NuberChangeEventHand NumberChange;
public void DoSomeThing()
{
if (NumberChange != null)
{
count++;
NumberChange(count);
}
}
}
public class Sub {
public void OnNumberChanged(int count)
{
Console.WriteLine("显示:{0}",count);
}
}
取消注释代码,注释掉委托变量定义,则