using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { //先在外面定义一个类. class MyClass { //委托是事件的前提,所以先定义一个委托 public delegate void Mydelagate(int i); // 接着定义事件. public event Mydelagate MyEvent; // event关键字是定义事件. 事件必须用委托 // 让事件在给某个属性赋值的时候触发 int FHello; public int Hello { get { return FHello; } set { if (value != FHello) { FHello = value; MyEvent(FHello); } } } //到这里事件就定义完了.但是还缺少让事件关联的方法. } class Program { // 这里我们定义一个和事件关联的方法. public static void ShowMessage(int i) // { if (i == 10) { Console.WriteLine("十全十美"); } else { Console.WriteLine("也许没有十全十美的事"); } } //然后开始实例上面MyClass这个类 static void Main(string[] args) { MyClass My = new MyClass(); My.MyEvent += new MyClass.Mydelagate(ShowMessage); //给事件关联方法.事件只能出现在+= 或者 -=的左边. //然后我们来试试这个事件, 给Hello属性赋值看看 My.Hello = 10; // 输出十全十美 My.Hello = 9; // 输入也许没有十全十美的事. } } }