您的位置:首页 > 编程语言 > C#

Event Mechanism in C#

2008-03-31 16:02 344 查看
1.what is Event in C#

simplely speaking,Event in C# is that as one instance does one behaviour, it will receive the message and then react with the message.

2.Event Happening&Re-acting Mechanism



3.how to declare a Event

i.first declare a delegte

ii.secondly declare repective Event

like the following codes:

public delegate void MyNewEvent(|object sender|,|MyEventArgs e|);

public event MyNewEvent OnMyNewEvent;

4.Event Demo project

E.g. Cat& Mouse problem.

A mouse wanna steal something, at the same time, A cat is tracking him. Once the mouse is stealing , it will touch something and make noise. and then, the cat will know the mouse is stealing and receive the message and re-act at once. please create a project to realiaze this schema.

the codes are following:

namespace CatMouse

{

public class mouse

{

public delegate void MouseSteel(string food);

public event MouseSteel OnMouseSteel; //declare an Event

public void MouseIsSteeling(string food)

{

Console.WriteLine("Sender side: I am a mouse , I am steeling {0}\n", food);

if (OnMouseSteel != null)

//if there exists a listener who is listen to this event, OnMouseSteel object will not be null; else it will be null;

OnMouseSteel(food);

}

}

public class cat

{

public cat(mouse tmp_mouse)

{

this.A_mouse = tmp_mouse;

A_mouse.OnMouseSteel += new mouse.MouseSteel(A_mouse_OnMouseSteel);

// once the mouse is stealing, the cat will re-act by method <A_mouse_OnMouseSteel>

}

void A_mouse_OnMouseSteel(string food)

{

Console.WriteLine("Receiver side: Cat ! A mouse is steeling {0}\n", food);

}

private mouse A_mouse;

}

class Program

{

static void Main(string[] args)

{

mouse A_mouse=new mouse();

cat A_cat = new cat(A_mouse);

A_mouse.MouseIsSteeling("bread");

A_mouse.MouseIsSteeling("fish");

A_mouse.MouseIsSteeling("milk");

A_mouse.MouseIsSteeling("butter");

Console.Read();

}

}

}

and if everything works well, we will such window:



congratulations! :)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
-->
新的分享
章节导航