代码改变世界

随笔分类 - C#(强化)

使用两个 Monitor 和 一个ManualResetEvent 对象来模拟一个信号量

2010-12-29 10:59 by 周国选, 332 阅读, 收藏, 编辑
摘要:从开始接触多线(进)程编程模型开始,学习的就是和信号量(Semaphore)相关的同步原语。不知道为什么 .Net Framework 里却没有相应的东东。要命的是, 我以前有很多久经考验的C++代码都是用她来实现的, 为了不使革命先烈的药白吃, 血白流, 只好自己生一个了。什么是信号量(Semaphore) 如果你已经了解信号量(Semaphore)的概念了,请跳过这一段。 信号量(Semaphore)是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。 我们来看看一个停车场是怎样运作的。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空 阅读全文

System.CodeDom详述及其应用实例

2010-12-29 10:44 by 周国选, 5536 阅读, 收藏, 编辑
摘要:.NET推崇这样一种思想:相对于框架而言,语言处于从属、次要的地位。CodeDom名称空间中包含的类是这一思想的集中体现。我们可以用CodeDom构造一个树或图,用System.CodeDom名称空间的类填充它,完成后,用对应各种.NET语言的CodeProvider对象将树结构转换成该种语言的代码。要更换一种语言,简单到只需更换一下最后用到的CodeProvider对象。   设想一下,利用这一技术,我们至少能够:   ·查询存储过程的元数据,构造出一个负责参数绑定的类。   ·查询程序集的manifest,构造出一个对每个函数执行单元测试的类。   ·为开发组用到的每一种语言生成样 阅读全文

C#强化系列文章[转载自永春阁]

2009-07-02 09:35 by 周国选, 347 阅读, 收藏, 编辑
摘要:使用.NET开发已经有一段时间了,但是对于一些基础性的东西还是有点模糊,有一种似是而非的感觉。在此整理一下C#中的一些基础知识以及一些可能平时不怎么注意到的知识(本系列会不断更新)1、C#强化系列文章一:ViewState使用兼谈序列化 2、C#强化系列文章二:在C#中使用钩子 3、C#强化系列文章三:实验分析C#中三种计时器使用异同点 4、C#强化系列文章四:匿名方法的使用5、C#强化系列文章五... 阅读全文

.Net下的签名与混淆

2009-06-09 09:01 by 周国选, 1208 阅读, 收藏, 编辑
摘要:任何时候,软件安全与版权保护都是很重要的,特别是企业级开发或一些特殊应用方面。对.NET平台下的开发如何做到安全,本文主要讨论签名与混淆和原理与思路。签名即强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。签名前后程序集结构对比假设程序集名子叫"WindowsApplication1",签名前后程序集信息对比[代码]如果项目中引用了一个已签名的程序集a... 阅读全文

C# []、Array、List、ArrayList 区别简介

2009-06-08 10:46 by 周国选, 258 阅读, 收藏, 编辑
摘要:[] 是针对特定类型、固定长度的。Array 是针对任意类型、固定长度的。List 是针对特定类型、任意长度的。ArrayList 是针对任意类型、任意长度的。 阅读全文

String虽然很简单,但他的某些特性你真理解正确了吗?

2009-05-18 09:18 by 周国选, 173 阅读, 收藏, 编辑
摘要:最近在园子里看到几篇关于string的文章,感觉其中有一些误解,不知道是自己理解有误还是园友理解错误,也没发现有园友提出质疑,索性也将自己的一点理解写出来,也对一些质疑提出了自己的解释,不管怎样我希望如果是我哪里理解错误大家一定要提出来,我们一起进步,否则真的会误导很多人,也感觉到写文章是要负责任的,否则就干脆写日志,不要发表出来误导到了一些对Net不熟悉的朋友!1.在DoNet中String是不... 阅读全文

.Net 中的序列化与反序列化

2009-05-15 09:27 by 周国选, 181 阅读, 收藏, 编辑
摘要:一、概述 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 二、对象的序列化主要有两种用途: 1)把对象的字节序列永久地保存到硬盘上,通常存放在一个文... 阅读全文

C# is实例说明

2009-05-12 10:24 by 周国选, 201 阅读, 收藏, 编辑
摘要:is(C# 参考)检查对象是否与给定类型兼容。例如,可以确定对象是否与 string 类型兼容,如下所示:if (obj is string){}备注 如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。有关更多信息,请参见 7.6.6 强制转换表达式。如果已知表达式将始终是 true 或始终是 false,则 is 关键... 阅读全文

C# typeof()实例详解

2009-05-12 09:58 by 周国选, 3199 阅读, 收藏, 编辑
摘要:typeof(C# 参考)用于获取类型的 System.Type 对象。typeof 表达式采用以下形式:System.Type type = typeof(int);备注 若要获取表达式的运行时类型,可以使用 .NET Framework 方法 GetType,如下所示:int i = 0;System.Type type = i.GetType();typeof 运算符也能用于公开的泛型类型。... 阅读全文

C#中String类的几个方法(IndexOf、LastIndexOf、Substring)

2009-05-07 09:16 by 周国选, 6350 阅读, 收藏, 编辑
摘要:String.IndexOfString.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。String.IndexOf(value, startIndex, count)参数value:要查找的 Unicode 字符。 startIndex:搜索起始位置。 count:要检查的字符位置数。返... 阅读全文

HtmlParser 解析HTML[转载]

2009-04-23 09:28 by 周国选, 3868 阅读, 收藏, 编辑
摘要:本文介绍了.net 版的一个HTMLParser网页解析开源类库(Winista.HTMLParser)的功能特性、工作原理和使用方法。对于使用.net进行Web信息提取的开发人员进行了一次HTMLParser的初步讲解。应用实例将会在日后的文中介绍,敬请关注。一、背景知识HTMLParser原本是一个在sourceforge上的一个Java开源项目,使用这个Java类库可以用来线性地或嵌套地解析... 阅读全文

.net System.Web.Caching.Cache缓存类使用详解

2009-03-16 18:07 by 周国选, 14900 阅读, 收藏, 编辑
摘要:System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类。这包括 Cache 类,该类是一个使您可以存储任意数据对象(如哈希表和数据集)的词典。它还为这些对象提供到期功能,并提供使您可以添加和移除对象的方法。您还可以添加依赖于其他文件或缓存项的对象,并在从 Cache 中移除对象时执行回调以通知应用程序。 System.Web.Caching.Cache 用... 阅读全文

C#中的定制特性(Attributes)详解有完整实例[转]

2009-03-13 17:13 by 周国选, 1019 阅读, 收藏, 编辑
摘要:Attributes in C# 介绍 Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如 帮助文件,文档的URL),还可以用attributes定义运行时信息(例如,使XML中的元素与类的成员字段关联起来)。我们也可以用attributes来创建一个“自描述”的组件。在这篇指南中我们将明白怎么创建属性并将其绑定至各种语言元素上,另外我们怎样... 阅读全文

超强获取计算机信息类(可获取cpu序列号,网卡地址,ip地址,硬盘id,登录系统用户,计算机名等等)

2009-03-13 10:44 by 周国选, 4342 阅读, 收藏, 编辑
摘要:using System; using System.Management; namespace ZGX.Common { /// /// Computer Information /// public class Computer { public string CpuID; public string... 阅读全文

.Net下二进制形式的文件(图片)的存储与读取(转载)

2009-03-13 09:30 by 周国选, 2657 阅读, 收藏, 编辑
摘要:朋友们,我喜欢给园子的朋友来来些简单实用的东西。这是我一贯作风。另外我补充说明这篇文章是我在平时的项目中收集而来,算是一些小的技巧,希望能给朋友们带来收获,如果有什么说的不准确的地方,还希望朋友们能提出合理的意见。下面切入正题: 看到标题,二进制形式的文件是很广的。这里我主要谈谈图片以二进制形式的数据读取和存储。 .Net下图片的常见存储与读取凡是有以下几种: 存储图片:以二进制的形式存储图片时,... 阅读全文