我学习使用vs2008三个多月了,我从不使用委托,也没有发现我的C#程序不正常,自己在C#中做软件不主动使用委托到底行不行。 我学习使用vs2008三个多月了,我从不使用委托,也没有发现我的C#程序不正常,自己在C#中做软件不主动使用委托到底行不行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 具体看什么应用,如果是简单的控制台应用程序,可能不需要委托和事件就能解决问题;但是在WinForm开发中,即使你不用委托,开发环境自动生成的代码也已经大量使用了事件(事件与委托是紧密相关的)。WinForm中的事件和委托,如同WIN32的消息处理机制一样,是最基本的概念,想不用都不可能。 说个例子给大家看看:见过属性吧!当你定义了属性后,在FORM的属性窗口中就能看到它委托呢是定义EVENT的基础,定义了EVENT就能吧基类封装起来,但是开放EVENT让子类来用!当然委托还可以使得你在发生一个事件的时候动态的做很多的事情,就是代码容易扩展 根据需求来的.不过有时用带委托做查询方便如遍历List<User> collection=new List<user>()这个集合下名称等于admin的记录赋给UserB一般的话是User GetFindUser(User UserB){ foreach(User data in collection) { if(data.name="admin") { UserB=data; } } return UserB;}但是我喜欢这种:collection=collection.Find(delegate(User obj){return obj.name="admin";}); 继续简化楼上的:collection = collection.Find( p => p.name == "admin"); p => p.name == "admin"这是Lambda表达式,是Func委托,系统隐含的,不是自己的。 C# WinForm DataGridView下拉列二级联动 C# 如何打印panel 里所有的控件 16进制转ASCII问题 关于服务定时器封装类,大家PP一下 你们几岁开始学编程的啊? 如何沟通??? 调用API函数InvokeCommand遇到的问题 WINFORM combobox 事件触发判断 生成不了C#应用程序的安装程序 请教:怎样用C#实现网页上的倒计时时钟? sql2005 登陆时的问题 调用sql语句的问题
但是在WinForm开发中,即使你不用委托,开发环境自动生成的代码也已经大量使用了事件(事件与委托是紧密相关的)。
WinForm中的事件和委托,如同WIN32的消息处理机制一样,是最基本的概念,想不用都不可能。
见过属性吧!
当你定义了属性后,在FORM的属性窗口中就能看到它
委托呢是定义EVENT的基础,定义了EVENT就能吧基类封装起来,但是开放EVENT让子类来用!
当然委托还可以使得你在发生一个事件的时候动态的做很多的事情,就是代码容易扩展
如遍历List<User> collection=new List<user>()这个集合下名称等于admin的记录赋给UserB
一般的话是
User GetFindUser(User UserB)
{
foreach(User data in collection)
{
if(data.name="admin")
{
UserB=data;
}
}
return UserB;
}
但是我喜欢这种:
collection=collection.Find(delegate(User obj){return obj.name="admin";});
collection = collection.Find( p => p.name == "admin");
p => p.name == "admin"这是Lambda表达式,是Func委托,系统隐含的,不是自己的。