| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 714 人关注过本帖
标题:C#事件机制的一个例子
只看楼主 加入收藏
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
 问题点数:0 回复次数:2 
C#事件机制的一个例子

高级编程里的一个例子,我见很好啊。

程序代码:

using System;
using System.Collections;
using System.Windows.Forms;

namespace Event
{
enum RequestType
{
AdRequest,
PersonMessageRequest
};
//事件处理类UserRequestEventArgs,没必要继承EventArgs,
//EventArgs又没有提供虚函数(也没必要提供)
class UserRequestEventArgs
{
private RequestType request;
public UserRequestEventArgs(RequestType request)
{
this.request=request;
}
public RequestType Request
{
get
{
return request;
}
}
}
class UserInputMonitor
{
//事件委托
public delegate void UserRequest(object sender,UserRequestEventArgs e);
//Event关键字说明这个委托是个事件
public event UserRequest OnUserRequest;

public UserInputMonitor()
{
//绑定事件处理方法
OnUserRequest += new Event.UserInputMonitor.UserRequest(monitor_OnUserRequest);
}

public void Run()
{
Console.WriteLine(\"Input:\");
while(true)
{
//输入A则显示AdRequest,输入P则显示PersonMessageRequest
string response = Console.ReadLine();
char responseChar = (response==\"\")?' ':char.ToUpper(response[0]);
switch(responseChar)
{
case 'A':
this.OnUserRequest(this,new UserRequestEventArgs(RequestType.AdRequest));
break;
case 'P':
this.OnUserRequest(this,new UserRequestEventArgs(RequestType.PersonMessageRequest));
break;
case 'X':
return;
}
}
}

//事件处理方法
protected void monitor_OnUserRequest(object sender,UserRequestEventArgs e)
{
//根据枚举值决定显示的信息
switch(e.Request)
{
case RequestType.AdRequest:
MessageBox.Show(\"It's AdRequest!\");
break;
case RequestType.PersonMessageRequest:
MessageBox.Show(\"It's PersonMessageRequest!\");
break;
}
}
}
class AppMain
{
public AppMain()
{}

static void Main()
{
UserInputMonitor user = new UserInputMonitor();
user.Run();
Console.ReadLine();
}
}
}

搜索更多相关主题的帖子: 机制 例子 
2007-05-03 17:28
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
没人买帐啊,那我坐沙发,是不是都觉得太简单了呢

Viva,espana!
2007-05-03 22:08
swc
Rank: 3Rank: 3
等 级:论坛游民
威 望:6
帖 子:394
专家分:83
注 册:2006-4-7
收藏
得分:0 

实践、学习、再实践、再学习......
2007-05-04 10:16
快速回复:C#事件机制的一个例子
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034350 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved