摘要: 我在自己最近的编程中注意到一个趋势,正是这个趋势才引出本月的专栏主题。最近,我在基于 Microsoft® .NET Framework 的应用程序中完成了大量的 Win32® Interop。我并不是要说我的应用程序充满了自定义的 interop 代码,但有时我会在 .NET Framework 类库中碰到一些次要但又繁絮、不充分的内容,通过调用该 Windows® API,可以快速减少这样的麻... 阅读全文
posted @ 2008-12-16 18:01 SpringX 阅读(220) 评论(0) 推荐(0) 编辑
摘要: The following example shows the use of Regular Expresssions in C#.This program has basic validation scripts for validation easily useable in all programs. /* csc /r:System.Text.RegularExpressions.d... 阅读全文
posted @ 2008-12-16 18:00 SpringX 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 在C#中使用一个类时,分两个阶段。首先需要定义这个类,即告诉编译器这个类由什么字段和方法组成。然后(除非只使用静态方法)实例化类的一个对象。使用委托时,也需要经过这两个步骤。首先定义要使用的委托,对于委托,定义它就是告诉编译器这种类型代表了那种类型的方法,然后创建该委托的一个或多个实例。 定义委托是从delegate开始的然而它是如何运作的呢。也许弄个鼠标事件会容易理解一些,这里还是拿出书中的例子... 阅读全文
posted @ 2008-12-16 17:59 SpringX 阅读(155) 评论(0) 推荐(0) 编辑
摘要: (一).说明 取得设备网卡的MAC地址和硬盘的卷标号 (二).图片示例 (三).代码 using System; using System.Management; namespace NetCard { /// /// 读取设备 /// public class run { private ManagementClass mc; private Mana... 阅读全文
posted @ 2008-12-16 17:57 SpringX 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(664) 评论(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) 编辑
摘要: 扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的。做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准地结合,应用于科学计算、电子出版、多媒体制作和电子商务的。C#作为一种新型的程序语言,是.Net框架的一个重要组成部分,他和XML的关系颇深。本文就从一个方面来探讨一下这二者的关系。即:看用C#如何来... 阅读全文
posted @ 2008-12-16 17:25 SpringX 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1.如果可能尽量使用接口来编程 .NET框架包括类和接口。当你写程序的时候,你可能知道你正在用.NET的哪个类。然而,在这种情况下如果你用.NET支持的接口而不是它的类来编程时,你的代码会变得更加稳定、可用性会更高。请分析下面的代码:private void LoadList (object [] items, ListBox l) { for (int i = 0; i < items.... 阅读全文
posted @ 2008-12-16 17:18 SpringX 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 目录 反射的概述 反射appDomain 的程序集 反射单个程序集 利用反射获取类型信息 设置反射类型的成员 通过反射创建类型的实例 反射类型的接口 反射的性能 反射的概述 反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等... 阅读全文
posted @ 2008-12-16 17:14 SpringX 阅读(256) 评论(1) 推荐(0) 编辑
摘要: 1 新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型-> 安装与部署-> 安装向导(安装项目也一样),然后点击确定。 2 安装向导 关闭后打开安装向导,点击下一步,或者直接点击完成。 3 开始制作 安装向导完成后即可进入项目文件夹: 双击" 应用程序文件夹" 在右边的空白处右击,选择添加-> 文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来。然后右击你的文... 阅读全文
posted @ 2008-12-16 17:07 SpringX 阅读(615) 评论(1) 推荐(0) 编辑
摘要: 加密和解密 Microsoft .NET Framework 中的 System.Security.Cryptographic 命名空间提供了多种帮助您加密和解密的工具。CryptoStream 类就是所提供的诸多类中的一个。CryptoStream 类设计用于在内容以流的形式输出到文件时加密和解密内容。 回到顶端 加密文件 要加密文件,请按照下列步骤操作: 启动 Visual S... 阅读全文
posted @ 2008-12-16 17:03 SpringX 阅读(1036) 评论(1) 推荐(0) 编辑