上一页 1 ··· 12 13 14 15 16
摘要: 前面简要介绍了委托的基本知识,包括委托的概念、匿名方法、Lambda表达式等,现在讲讲与委托相关的另一个概念:事件。事件由委托定义,因为事件的触发方(或者说发布方)并不知道事件的订阅方会用什么样的函数名称,这个函数名称由订阅方自己决定。假如不这样做,那么事件的订阅方必须公开一个专门用于处理事件的函数给事件触发方,由触发方在事件触发的时候调用这个函数。这样一来,触发方必须知道订阅方的细节,才能有效地... 阅读全文
posted @ 2008-11-21 11:11 dax.net 阅读(2513) 评论(0) 推荐(1) 编辑
摘要: 今天弄到了一份Visual Studio 2010 CTP的虚拟机,是微软官方发布的。解压后虚拟机的磁盘大小估计有25GB,需要内存1GB,因此你的机器配置至少要2GB的内存,才能比较流利地体验2010。该虚拟机所使用的操作系统是Windows Server 2008。在完成第一次运行的配置后,崭新的Start Page映入眼帘:基本界面现在开始新建一个Console Application。在&... 阅读全文
posted @ 2008-11-18 15:32 dax.net 阅读(951) 评论(0) 推荐(0) 编辑
摘要: 从委托的角度来看,Lambda表达式与匿名方法没有区别。在【C#基础:匿名方法】一文中,我使用了匿名方法来调用List<T>的FindAll方法。从C# 3.0开始,在使用匿名方法的地方,完全可以用Lambda表达式来代替。Lambda表达式的定义方式为:“([参数列表]) => 表达式”。运算符“=>”是一种与赋值运算&ld... 阅读全文
posted @ 2008-11-14 14:07 dax.net 阅读(9811) 评论(1) 推荐(0) 编辑
摘要: 匿名方法是C# 2.0的语言新特性。首先看个最简单的例子:view plaincopy to clipboardprint?classProgram { staticvoidMain(string[]args) { List<string>names=newList<string>(); names.Add("SunnyChen"); names.Add("KittyWan... 阅读全文
posted @ 2008-11-12 16:06 dax.net 阅读(16647) 评论(3) 推荐(5) 编辑
摘要: 泛型委托是委托的一种特殊形式,感觉看上去比较怪异,其实在使用的时候跟委托差不多,不过泛型委托更具有类型通用性。就拿C#里最常见的委托EventHandler打比方。在.NET 2.0以前,也就是泛型出现以前,普通的事件处理函数都由EventHandler定义,如下:view plaincopy to clipboardprint?publicdelegatevoidEventHandler(obj... 阅读全文
posted @ 2008-11-11 14:21 dax.net 阅读(3402) 评论(2) 推荐(2) 编辑
摘要: 首先来看一个简单的例子:小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务这也是日常生活中很常见的情形,小文的办事效率明显要高于小明。从C#程序执行的角度考虑,小明使用的同步处理方式,而小文则使用的异步处理方式。同步处理方式下,事务是按顺序一件一件处理的;而异步方式则是,将子操作从主操作... 阅读全文
posted @ 2008-11-10 13:41 dax.net 阅读(9363) 评论(2) 推荐(11) 编辑
摘要: 委托是C#中最为常见的内容。与类、枚举、结构、接口一样,委托也是一种类型。类是对象的抽象,而委托则可以看成是函数的抽象。一个委托代表了具有相同参数列表和返回值的所有函数。比如:view plaincopy to clipboardprint?delegateintGetCalculatedValueDelegate(intx,inty);在上面的定义中,我们定义了一个委托,这个委托代表着一类函数,... 阅读全文
posted @ 2008-11-08 20:23 dax.net 阅读(9833) 评论(12) 推荐(8) 编辑
摘要: 在C#中,ref的意思是按引用传递。可以参考C++:view plaincopy to clipboardprint?inta=10,b=20; voidswap(intx,inty) { inttemp=x; x=y; y=temp; }如果简单的调用这个swap,比如:swap(a, b),那么你根本没办法交换这两个变量的值,因为x和y都是形参,在swap返回的时候,x和y都被释放了。但如果是... 阅读全文
posted @ 2008-11-07 15:50 dax.net 阅读(2229) 评论(2) 推荐(2) 编辑
摘要: 应用程序配置文件的文件名是可以任意更改的。比如:向当前的可执行项目中添加一个XML文件,取名abc.config,输入以下代码 view plaincopy to clipboardprint?<?xmlversion="1.0"encoding="utf-8"?><configuration><appSettings><addkey="k"value="... 阅读全文
posted @ 2008-11-06 14:14 dax.net 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 很多人都说使用Abort方法来终止线程,其实这种做法并不可取!如果你的线程正在操作临界资源,很有可能会造成资源没有正确释放而出现死锁问题。正确的做法应该是使用标记来终止线程的执行。基本思路是:定义一个用于描述“停止”信号的变量,在整个程序启动前,设置该变量为false。在线程中,循环判断该变量是否已经被设置为true,如果没有,则继续执行,否则就退出循环并释放资源,然后退出... 阅读全文
posted @ 2008-11-06 11:38 dax.net 阅读(3867) 评论(2) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16