摘要: Ganesh Nataraj最近写了一篇解释委托与事件的文章,在坊间流传较广,今天翻译成中文与大家共享,如有不妥之处,欢迎留言讨论。 C#中的委托类似于C或C++中的函数指针。程序设计人员可以使用委托将方法的引用压缩到委托对象中,委托对象能被传递给调用该方法引用的代码而无须知道哪个方法将在编译时被调用。与C或C++中的指针不同的是,委托是面向对象的、类型安全的、受保护的。 委托声明时... 阅读全文
posted @ 2008-12-16 17:54 SpringX 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 委托的定义: 委托是一种在对象里保存方法引用的类型,同时也是一种类型安全的函数指针。 委托的优点: 压缩方法的调用。 合理有效地使用委托能提升应用程序的性能。 用于调用匿名方法。 委托的声明: 委托应使用public delegate type_of_delegate delegate_name()的形式来声明。 示例:public delegate int mydelegate(int de... 阅读全文
posted @ 2008-12-16 17:52 SpringX 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 注:本文中出现的代码均在.net Framework RC3环境中运行通过 一.多线程的概念 Windows是一个多任务的系统,如果你使用的是windows 2000及 其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序 所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程... 阅读全文
posted @ 2008-12-16 17:50 SpringX 阅读(136) 评论(0) 推荐(0) 编辑
摘要: C#中编写多线程 .NET将关于多线程的功能定义在System.Threading名字空间中。因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;)。 即使你没有编写多线程应用程序的经验,也可能听说过“启动线程”“杀死线程”这些词,其实除了这两个外,涉及多线程方面的还有诸如“暂停线程”“优先级”“挂起线程”“恢复线程”等等。下面将一个一个的解释... 阅读全文
posted @ 2008-12-16 17:48 SpringX 阅读(144) 评论(0) 推荐(0) 编辑
摘要: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.IO; using System.Thread... 阅读全文
posted @ 2008-12-16 17:47 SpringX 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 由于.NET框架对消息循环机制进行了很好的封装,开发人员不再需要深入的了解Windows事件/消息实现的具体机制,也无需创建复杂的事件结构体和所谓的消息句柄。我们所要做的无非就是——1、使用重载运算符“+=”注册一个事件;2、编写对于该事件的处理方法。(关于C#2.0中事件处理的相关介绍,请参阅我的文章:C#2.0的泛型代理和事件 :以一当百的快感 ) 如此简单,以至于习惯了Win32编程的伙... 阅读全文
posted @ 2008-12-16 17:43 SpringX 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 多少年来,许多的编程语言和工具都包含对规则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容。 此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式和表达式的编辑等。 在这篇文章中,我将简要地介绍System.Text.RegularExpression中的类和方法、一些字符串... 阅读全文
posted @ 2008-12-16 17:37 SpringX 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 如果要在C#中定义一个事件,首先你要创造一个delegate(委派),用他来定义一个你所想使用事件的标签,然后你才能使用event关键字,在这个委派的基础上定义一个事件. 两点需要注意的是:第一,首先你要创造一个委派,第二,根据你所创造的委派来定义一个事件,这才是一个完整的事件定义. 假设我们把书中的Product类进行增强.加入了一个NameChanged事件,此事件只有当Name通过属性渠道被... 阅读全文
posted @ 2008-12-16 17:34 SpringX 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1.C#连接连接Access 程序代码: ------------------------------------------------------------------------------- using System.Data; using System.Data.OleDb; .. string strConnection="Provider=Microsoft.Jet.OleD... 阅读全文
posted @ 2008-12-16 17:31 SpringX 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 网上流行的asp版md5.perl版des算法在C#中的简单实现 1:MD5 以前在asp时代常用的MD5算法好象是从动网流出来的,后来大家都用它,基本上有两种 ,区别在md5.asp的结尾部分 MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) MD5=LCase(WordToHex(b) & ... 阅读全文
posted @ 2008-12-16 17:28 SpringX 阅读(288) 评论(0) 推荐(0) 编辑