摘要: 转载:http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。 阅读全文
posted @ 2012-03-28 15:56 苗苗她爹 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 引用自:http://hi.baidu.com/jiang_yy_jiang/blog/item/5ad3c3249e76f726d5074225.html在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。不过,本主题中有关匿名方法的信息同样也适用于 Lambda 表达式。有一种情况下,匿名方法提供了 Lambda 表达式中所没有的功能。匿名方法使您能够省略参数列表,这意味着可以将匿名方法转换为带有各种签名的委托。这对于 Lambda 表达式来说是不 阅读全文
posted @ 2012-03-28 15:56 苗苗她爹 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows程序生生不息。Windows GUI程序的消息循环Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源。这里的while循环使用了GetMessage()这个方法, 阅读全文
posted @ 2012-03-28 15:55 苗苗她爹 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1-------------------------------------------------------用记事本打开sln文件,找到第一行,将microsoft visual studio solusion file,format version 10.0# visual studio 2008改为:microsoft visual studio solusion file,format version 9.0# visual studio 20052-------------------------------------------------------用记事本打开csproj文 阅读全文
posted @ 2012-03-28 15:55 苗苗她爹 阅读(134) 评论(0) 推荐(0) 编辑
摘要: C#回调函数应用示例,形象比喻方法助理解,整理了一个简单的例子来说明回调函数的用法: namespace CallBackFunction { class Program { static void Main(string[] args) { Program prog = new Program();//在静态函数Main中调用非静态方法时,必须先实例化该类对象,方可调用GetSum方法 SumClass sc = new SumClass();//实例化SumClass类 int result=sc.SumAll(prog.GetSum); Console.WriteLine(result. 阅读全文
posted @ 2012-03-28 15:54 苗苗她爹 阅读(1031) 评论(1) 推荐(1) 编辑
摘要: 最近在学设计模式,学到创建型模式的时候,碰到单例模式(或叫单件模式),现在整理一下笔记。 在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定义是:Ensure a class only has one instance,and provide a global point of access to。它的主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量-唯一一个。(《设计模式-基于C#的工程化实现及扩展》,王翔)。也就是说,单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的. 阅读全文
posted @ 2012-03-28 15:53 苗苗她爹 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、委托Delegate一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如publicvoid HelloWorld() {Console.WriteLine("Hello World!");}publicvoid HelloWorld(string name) {Console.WriteLine("Hello ,{0}!", name);}但是有些时候,我们希望把一个方法本身当做参数传递给另一个方法,比如myObject.callMethod(HelloWorld);在没有 阅读全文
posted @ 2012-03-28 15:53 苗苗她爹 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1、从“最简单”的单例模式说起:publicclass Singleton{privatestatic Singleton instance =null;privatestaticreadonlyobject syncRoot =newobject();private Singleton(){}publicstatic Singleton GetInstance(){if (instance ==null){lock (syncRoot){if (instance ==null){instance =new Singleton();}}}return instance;}} 稍微了解设计模式. 阅读全文
posted @ 2012-03-28 15:52 苗苗她爹 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 本文将介绍以下内容:• 面向对象思想:多态• 接口• 抽象类1. 引言在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。2. 概念引入什么是接口?接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口, 阅读全文
posted @ 2012-03-28 15:51 苗苗她爹 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 转自 :http://www.cnblogs.com/anytao/archive/2007/12/03/must_net_18.html本文将介绍以下内容:对象的创建过程内存分配分析内存布局研究1. 引言了解.NET的内存管理机制,首先应该从内存分配开始,也就是对象的创建环节。对象的创建,是个复杂的过程,主要包括内存分配和初始化两个环节。例如,对象的创建过程可以表示为:FileStream fs = new FileStream(@"C:"temp.txt", FileMode.Create);通过new关键字操作,即完成了对FileStream类型对象的创建过 阅读全文
posted @ 2012-03-28 15:51 苗苗她爹 阅读(162) 评论(0) 推荐(0) 编辑