| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:[求助]事件和委托的问题
取消只看楼主 加入收藏
kuian
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-2-4
收藏
 问题点数:0 回复次数:1 
[求助]事件和委托的问题

本人正刚开始学习C#
现在学习到委托和事件了,小弟有些不明白了请个位高手指点:


我觉得事件就是委托
只不过是有2个参数(object 和 eventargs)和void返回类型和 关键字event的 特殊的委托

例如下面这两个程序,一个是用委托做的,一个是用事件做的。他们完成同一个功能。而且代码几乎相同
我就不懂了 , 既然能使用委托来完成,干吗还要用事件来完成,他们有什么区别,是什么关系呢??????????

///////////////////////////////////////委托//////////////////////////////////////////////
using System;

namespace a
{
class UserInputMonitor
{
public delegate void UserRequest();
public UserInputMonitor.UserRequest OnUserRequest;
public void Run()
{ do
{
if (Console.ReadLine()=="h")
{
OnUserRequest();
}
}while(true);
}
}
public class Client
{
public static void Main()
{
UserInputMonitor monitor=new UserInputMonitor();
new Client(monitor);
monitor.Run();
}
private static void ShowMessage()
{
Console.WriteLine("委托"+" "+"HaHa!!");
}
Client(UserInputMonitor m) {
m.OnUserRequest = new UserInputMonitor.UserRequest(Client.ShowMessage);
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////事件///////////////////////////////////////////////////

using System;

namespace 事件
{
using System;
class UserInputMonitor
{
public delegate void UserRequest(object sender,EventArgs e); //定义委托
public event UserRequest OnUserRequest; //此委托类型类型的事件
public void Run()
{

do
{
if (Console.ReadLine()=="h")
{

Console.WriteLine("this is envent");
OnUserRequest(this,new EventArgs());
}
}while(true);
}
}

public class Client
{

public static void Main()

{
UserInputMonitor monitor=new UserInputMonitor();

new Client(monitor);

monitor.Run();

}

private void ShowMessage(object sender,EventArgs e)
{

Console.WriteLine("事件"+" "+"HaHa!!");

}
Client(UserInputMonitor m)
{
m.OnUserRequest+=new UserInputMonitor.UserRequest(this.ShowMessage);
}
}

搜索更多相关主题的帖子: 委托 void event object 
2006-02-04 11:33
kuian
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-2-4
收藏
得分:0 


非常感谢2位!! 这个问题困饶我好几天。 看来这确实是一个容易糊涂的地方。
2006-02-04 15:51
快速回复:[求助]事件和委托的问题
数据加载中...
 
   



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

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