- 实现ICloneable接口,看起来是个不错的选择,想要类型支持拷贝,就实现ICloneable,不想支持拷贝,就不实现ICloneable。但是,大家仔细想一想,你的对象并不是在一个独立的环境中运行...
- 当你创建自己的类型时,应该定义类型的顺序关系,以便在集合中描述对象的存储及排序。.net框架为我们定义了两个接口用于实现对象的比较顺序关系,分别是:IComparable和IComparer。IComparable接口用于定义类型的自然顺序(据我理解也就是对象的默认顺序关系),IComparer接口...
- 持久性是类型的一个核心属性,这是一个很容易被忽略的基本元素。如果你的类型不支持序列化,那么你就会为使用你的类型作为成员或基类的开发者增加了很多工作量,他们必须在不能访问你的类型私有细节的情况下对你的类型实现序列化,很明显,如果你不在定义类型时将类型声明为可序列化,那么使用你类型的客户端是很难或根本不...
- 声明式编程通常比命令式编程更能简单,清楚的描述软件的行为。声明式编程意味着你能通过一个简单的声明来定义你的程序的行为,而不是传统的写代码来定义程序的行为(比如在类中通过定义方法来定义软件的行为)。那么在C#中怎么实现声明式编程呢,其实就是通过C#的Attribute来实现的,你可以将Attribut...
- 本来今天应该写到item21 Define Outgoing interfaces with events,但是因为对其中的类型中用事件集合来解决一个类型中包含多个事件的情况,并在运行时创建需要的事件对象的机制还不是很明白(大家可以去读原文,或去了解一下System.Windows.Forms.C...
- 从该条目的标题的字面来理解,就是“通过委托表示回调”。那么什么是回调呢,作者在书中给了一个解释:回调是用来提供从服务器到客户端的异步信息反馈。我的理解是客户端向服务器端提出一个请求,然后服务器端开始执行该请求,而客户端继续做自己的工作。当服务器端执行完请求时,或发生一些状态改变时,就可以向客户端反馈...
- 学了一年多的c#,看了不少书,但是由于实践机会不多,忘的比学的快。迷茫了好一阵,听工作室的前辈说写博客是个不错的巩固知识的方式,于是想试一试,最近正在读《Effective C#》,所以想从读书笔记...










