- 博客(16)
- 资源 (13)
- 收藏
- 关注
原创 为客户端使用事件增加匿名方法
这样可以免除客户端多调用事件的时候,每次都要写new xx(),再建一个xxx(object sender,EventArgs e)的方法的麻烦。不过说起来,我觉得反正VS可以通过tab键自动感应帮我们建好这个方法,而且规范整齐,有何不好呢?Car的代码同上一篇一样,只是客户端的代码加多了一行。客户端: using System;using System.Collect
2008-06-30 17:43:00 593
原创 事件如何支持泛型代理
。。。这样的话,可以少声明很多代理了。。。(可以多个事件对应一个代理)还没有感觉出来有什么特别大的用途。car:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace TestCS{ public
2008-06-30 17:33:00 84 1
原创 event关键字存在的必要
有了代理,为什么还要事件?是否代理和事件一定要“双生”?事件的作用是:缩小客户端使用代理的权限:只能增建、删除注册。而不能Invoke或者重置代理。如果采用私有化代理并且自定义访问方法也可以做到这点。真是这个机制太常用了,增加一个event关键字可以少打一点代码如果客户端需要再更加大的范围使用类的代理,则不用事件即可。事件的声明:访问权限 + event关键字 + 代理类型 ;ca
2008-06-30 17:04:00 1308 1
原创 .net 2.0 以后的版本:代理一个对象的时候,支持继承树
因此,使用泛型的代理,也可以使用object的代理来代替class SportCar : Car { public override string ToString() { return "this is child class-->"+base.ToString(); }
2008-06-30 16:36:00 639
原创 泛型的代理--Generic delegate
using System;using System.Collections;using System.Linq;using System.Text;using System.Collections.Generic;using System.Runtime.Serialization;namespace TestCS{ c
2008-06-30 16:27:00 760
原创 callback(3)--使用方法覆盖
针对callback(1)的需求,我们还可以使用第三种方式来解决,使用virtual的方法。只是客户端调用的时候,必须要自己重新一个car类。代码如下:其实第一种和第二种都是has-a解决方案;这一种是 is-a的解决方案CAR: using System;using System.Collections.Generic;using System.Linq;
2008-06-30 15:28:00 578
原创 callback(2)--使用代理
针对callback(1)的需求,可以使用代理来解决。/相对于用接口Callback的方式, //代理可以和接口一样指定方法的定义 //代理可以自动维护一个ArrayList,通过简单的 += 和 -= 就可以实现. //如果Car类中,将该代理类型的成员设为public ,甚至可以不用再写维护的方法CAR using System;using
2008-06-27 17:54:00 748
原创 callback(1)---callback interface--回传接口
如果我已经写好了一个类,但是调用端(客户端)想要干预我的执行顺序。比如有一个Car类,客户端想要在Car超速的时候,打印出超速的信息。而且,客户端想要怎么样打印还不确定,或者说不同的客户端想要打印不同的信息。这个时候,Car就和客户端约定好:定义一个接口,用来规范需要的参数;Car维护一个该接口的列表(用户可以传入多个处理方式),并且在适当的时候,调用该接口定义的方法,给客
2008-06-27 15:45:00 1251
原创 泛型的基类和接口
象其他的类型一样,泛型也可以定义基类和接口。注意:当子类实现泛型基类时候,需要指定到底是什么类型。当子类实现泛型基类的abstract或者virtual的方法时候,也要指定类型。例如:// A generic class with a virtual method.public class MyList{private List listOfData = new
2008-06-24 10:49:00 1603
原创 自定义泛型的结构(struct)
注意点: 首先,结构的声明要加入,如 MyPoint, 不然结构体里面用到T会混淆。其次,default关键字的新用法:除了在Switch里面的用法;在泛型里面表示该类型的默认值。比如int的默认值为0;引用型的默认值为null。 span class="Title">最后,泛型允许加入where关键字来限定传入的类型。主要包括where T : struct 必须传入值类型
2008-06-24 09:56:00 2961
原创 自定义泛型方法
泛型的接口主要有:ICollection,IComparer,IDictionary,IEnumerable,IEnumerator,IList; 已经实现的类有:Collection,Comparer, Dictionary, List, Queue, SortedDictionary, Stack,LinkedList,ReadOnlyCollection 但是除了这些方法外,还可以自
2008-06-24 09:41:00 1708
原创 如何在一个环境中立足
刚来公司的时候,公司没有文档,面对几十个表,也没有人给我讲,业务流程,啥都不熟悉。说是开发保税仓、监管仓系统,我连这些仓库是做什么的都不知道。领导也不安排任务,忙的忙死,闲的闲死,没有项目管理,叫他招个测试,他说不用;最后还是叫我做测试,搞的我气不过。。。。带着种种的抱怨,我在这个岗位呆了半年了,说实话是忙少闲多,多次产生辞职的念头。不过今天看了阿朱入职的经历,我觉得我还是身上带着
2008-06-18 10:47:00 705
原创 为什么我喜欢CNBLOG
CNBLOG主页很简单,就是最新选出的优秀文章. 每天上去一看,增长知识.这就类似于Google一开始的设计,就是一个简单的页面, 但是很直接.
2008-06-11 16:06:00 815
原创 C# 2.0开始支持Nullable
解决的问题:如何区分没有赋值的Datetime和1/1/0001如何区分没有赋值的int 和 0C#2.0以上的版本支持了Nullable 代码:DateTime? a = null;Nullable t = null;Console.WriteLine(a.HasValue);解释:DateTime? 就相当于 Nullable同理可以用于其他值类型.注
2008-06-05 11:41:00 712
原创 WCP初体验
WCF是MS对于WebService/Remoting/消息服务的整合.这部分一定会在今后的网络环境中大展拳脚.因此我就来学习一下.首先就是进入msdn的首页,发现首页改版了,清爽很多.内容索引做的更好了.然后进入我想要找到的页面:http://msdn.microsoft.com/zh-cn/library/ms735119.aspx首先浏览了一下概述,和我心中想的功能差不多.
2008-06-04 11:58:00 1343
简单的网页内容采集器(C#)
2008-03-31
史上最简单的LightBox--Surance Box
2008-02-29
Surance Center V1.0
2007-12-30
CodeSurance
2006-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人