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; // 输入也许没有十全十美的事.
}
}
}