c#
hflkl1314
这个作者很懒,什么都没留下…
展开
-
C# 中的委托和事件
源码下载:http://www.tracefact.net/SourceCode/Delegates-and-Events-in-CSharp.rarC# 中的委托和事件引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委转载 2011-10-13 09:36:25 · 366 阅读 · 0 评论 -
实际举例C#引用类型和值类型的区别
我们都知道,C#的两大数据类型分别为值类型和引用类型。很多人或许闭着眼睛都能说出值类型包括简单类型、结构体类型和枚举类型,引用类型包括自定义类、数组、接口、委托等,但是当被问及到二者之间的联系和区别,什么时候用struct什么时候用class时,就常常混淆不清了。为此,了解值类型转载 2011-10-17 16:44:12 · 541 阅读 · 0 评论 -
C#中Split用法
1、用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase转载 2011-10-18 14:26:46 · 334 阅读 · 0 评论 -
.Net 自定义应用程序配置
引言几乎所有的应用程序都离不开配置,有时候我们会将配置信息存在数据库中(例如大家可能常会见到名为Config这样的表);更多时候,我们会将配置写在Web.config或者App.Config中。通过将参数写在配置文件(表)中,我们的程序将变得更加灵活,只要对参数进行修改,再由程序中的某段代码去读取相应的值就可以了。而如果直接将配置值写在程序中,当配置需要改变时,则只能通过修改代码来完成,此转载 2011-10-25 09:17:20 · 642 阅读 · 0 评论 -
C#中的多态
封装、继承、多态,面向对象的三大特性,前两项理解相对容易,但要理解多态,特别是深入的了解,对于初学者而言可能就会有一定困难了。我一直认为学习OO的最好方法就是结合实践,封装、继承在实际工作中的应用随处可见,但多态呢?也许未必,可能不经意间用到也不会把它跟“多态”这个词对应起来。在此抛砖引玉,大家讨论,个人能力有限,不足之处还请指正。 之前看到过类似的问题:如果面试时主考官要转载 2011-10-26 17:46:07 · 362 阅读 · 0 评论 -
Visual Studio 2008 单元测试
开发组件的时候使用VS集成的单元测试功能会很方便 1.新建一个类库项目,并为其中的类添加一个方法,方法任意之后右键点击代码窗口选择方法为新建项目命名 然后在解决方案管理中就多了相应的Test Project和一个叫Solution Items的解决方案文件夹。相关的文件作用如下:localtes原创 2011-10-28 11:32:09 · 375 阅读 · 0 评论 -
Visual Studio自定义调试窗体两个小技巧
这篇文章讲述如何自定义你的调试窗体。这些技巧在你调试应用程序的时候是非常有用的。当你调试的时候,你可能希望简化调试窗体的信息,或者在调试窗体上除去对你不重要的不必要的信息,这篇文章将会帮助到你。本文翻译:Few Tips on Customizing Debugging Window View in Visual Studio 。 使用DebuggerBrowsable特性可以自原创 2011-10-27 16:17:51 · 602 阅读 · 0 评论 -
一个C#分析html的包,从老外的一个Spider程序里提取出来的
一个C#分析html的包,以前思考如何分析html,总是毫无头绪,情况太多,太复杂。后来在一个老外写的Spider程序里发现了这个。非常好用,屡试不爽,现在才知道自己写程序还在一个很低的层次,尤其是面向对象思想的理解。利用继承的思想来分解问题,利用多个类来实现多种情况的变化,这个才是OO思想,而自己很多时候只是为了OO而去OO,其实水平还是停留在面向过程里。好好分析下这些代码,受益颇多。///原创 2011-10-27 17:12:26 · 1505 阅读 · 0 评论 -
运用Composite模式构造JSON
Json是如今流行的Ajax或Service数据交换格式,.NET使用DataContractJsonSerializer(System.Runtime.Serialization.Json命名空间下),可以很方便地在json字符串和实体对象间转换。在Restful WCF服务站点上,更无须写代码序列化Json。服务默认以xml形式返回结果,但如果Web请求头信息中的Accept属性为appl转载 2011-11-18 13:39:33 · 555 阅读 · 0 评论 -
.net c#获取自定义Attribute
前言: 在c#开发中,有时候我们需要读取 Attribute中的信息(关于Attribute , 我自己把他理解成一个可以为类,属性标记的东西,这个标记可以为你提供一些关于类,方法,属性的额外信息)我们如何获取这些标记的信息,如何获取自定义Attribute信息。正文:1.获取一个枚举的详细信息假设我们有这样一个枚举public enum Category转载 2011-11-21 13:33:56 · 7066 阅读 · 1 评论 -
谷歌marker使用说明
http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/reference.html#MarkerOptions function initialize() { var myOptions = { zoom: 4,原创 2011-11-02 13:42:19 · 885 阅读 · 0 评论 -
再度提升!.NET脏字过滤算法
再度改进,在脏字可能存在的情况下,例如出现了多个脏字前Length-1部分时,性能相比http://www.cnblogs.com/xingd/archive/2008/01/31/1060425.html中描述的又提升了300%~400%。直接贴出全部代码了,通过新增的一个byte[char.MaxValue]和BitArray(char.MaxValue),减少了大量的Substrin转载 2011-11-24 16:25:49 · 464 阅读 · 0 评论 -
ASP.NET中进行消息处理(MSMQ)
MSMQ是微软消息队列的英文缩写。那么什么是消息队列?这些介绍网上一大片这里就不多说了。本文对于大虾级的人物来说这只是小玩意而已,对于初学者来说这文章还是有一定的帮助,希望路过的大虾们别笑话我班门弄斧。一、MSMQ介绍和安装消息队列 关于MSMQ详细的介绍请大家向http://www.baidu.com/或http://www.g.cn/等专家咨询。 使用消息队转载 2011-11-08 10:32:26 · 460 阅读 · 0 评论 -
ASP.NET中进行消息处理(MSMQ) 二
在我上一篇文章《ASP.NET中进行消息处理(MSMQ)一》里对MSMQ做了个通俗的介绍,最后以发送普通文本消息和复杂的对象消息为例介绍了消息队列的使用。 本文在此基础上继续介绍MSMQ的相关知识点,最后还是通过一个示例程序来分析MSMQ在实际项目开发中的应用。建议:如果你对MSMQ不够了解,在你阅读本文前请先阅读第一部分:《ASP.NET中进行消息处理(MSMQ)一》。一、消息传转载 2011-11-08 11:49:24 · 472 阅读 · 0 评论 -
值类型的相等比较
5.3.2 值类型的相等比较在进行值类型的相等比较时,采用与引用类型相同的规则:ReferenceEquals()用于比较引用,Equals()用于比较值,比较运算符可以看作是一个中间项。但最大的区别是值类型需要装箱,才能把它们转换为引用,才能对它们执行方法。另外,Mi转载 2011-10-17 17:16:39 · 395 阅读 · 0 评论 -
C# 类型基础
引言本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制。复制又分为了浅度复制(Shallow Copy)和深度复制(Deep Copy),浅度复制转载 2011-10-17 15:32:50 · 319 阅读 · 0 评论 -
C#之理解接口的作用
在C#的开发中,接口是非常重要也非常好用的。可是很多时候很多人都不是很了解接口的做用,以及该如何使用。下面我们就来理解接口的作用,并看看如何使用吧。假设我们公司有两种程序员:VB程序员,指的是用VB写程序的程序员,用clsVBProgramer这个类表示;Delphi程序员指转载 2011-10-13 11:39:38 · 355 阅读 · 0 评论 -
C#里partial关键字的作用
1. 什么是局部类型?C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。局部类型适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具转载 2011-10-13 11:40:48 · 327 阅读 · 0 评论 -
C#多线程学习(三) 生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(cr转载 2011-10-14 11:51:17 · 324 阅读 · 0 评论 -
C#多线程学习(四) 多线程的自动管理(线程池)
C#多线程学习(四) 多线程的自动管理(线程池)在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池转载 2011-10-14 11:52:26 · 362 阅读 · 0 评论 -
C#多线程学习(二) 如何操纵一个线程
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函转载 2011-10-14 11:50:21 · 319 阅读 · 0 评论 -
C#多线程学习(五) 多线程的自动管理(定时器)
Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1转载 2011-10-14 11:52:52 · 415 阅读 · 0 评论 -
C#多线程学习(六) 互斥对象
如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才转载 2011-10-14 11:53:21 · 372 阅读 · 0 评论 -
C#多线程学习(一) 多线程的相关概念
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可转载 2011-10-14 11:49:46 · 477 阅读 · 0 评论 -
介绍程序中thread.sleep()的作用,作者写的相当的通俗易懂,
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00转载 2011-10-14 15:19:27 · 2745 阅读 · 2 评论 -
C#读硬盘序列号的原代码
public class IDE { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] internal struct IDSECTOR {转载 2011-10-16 10:00:34 · 474 阅读 · 0 评论 -
ManualResetEvent详解
1. 源码下载: 下载地址:http://files.cnblogs.com/tianzhiliang/ManualResetEventDemo.rar Demo:2. ManualResetEvent详解 ManualR转载 2011-10-17 09:03:25 · 357 阅读 · 0 评论 -
C#事件(event)解析
事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发转载 2011-10-16 15:05:59 · 474 阅读 · 0 评论 -
引用类型的相等比较
5.3 对象的相等比较在讨论了运算符,并简要介绍了等于运算符后,就应考虑在处理类和结构的实例时相等意味着什么。理解对象相等比较的机制对编写逻辑表达式非常重要,另外,对实现运算符重载和数据类型转换也非常重要,本章的后面将讨论运算符重载。对象相等比较的机制对于引用类转载 2011-10-17 17:03:20 · 925 阅读 · 0 评论 -
Operator运算符重载与Implicit隐式类型转换
class Person { public int Age { get; set; } public string Name { get; set; } public static int operator -(Person p1, Person p2)//int为想减结果类型,-表示对-进行运算符重载 //参数转载 2011-12-13 09:40:58 · 3210 阅读 · 0 评论