摘要: 当一个类的实例的方法被赋给一个委托对象时,在上下文中不仅要维护这个方法,还要维护这个方法所在的实例。System.Delegate 类的Target属性指向的就是这个实例。举个例子: class Program { static void Main(string[] args) { X x = ne 阅读全文
posted @ 2020-03-05 21:17 ElevenXiao 阅读(736) 评论(1) 推荐(1) 编辑
摘要: 所有的委托实例都有多播的功能。所谓多播,就像一群程序员在瞬聘网填好了求职意向后,某天有个公司发布了一个和这些程序员求职意向刚好相匹配的工作,然后这些求职者都被通知了 - “有一份好工作招人啦,你们可以直接申请去上班了!”。 也就是说,一个委托实例不仅可以指向一个方法,还可以指向多个方法。例如: My 阅读全文
posted @ 2020-03-05 21:14 ElevenXiao 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 我们可以利用“委托是一个能把方法作为参数传递的对象”这一特点,来实现一种插件式编程。 例如,我们有一个Utility类,这个类实现一个通用方法(Calculate),用来执行任何有一个整型参数和整型返回值的方法。这样说有点抽象,下面来看一个例子: delegate int Calculator(in 阅读全文
posted @ 2020-03-05 21:08 ElevenXiao 阅读(233) 评论(0) 推荐(1) 编辑
摘要: 委托太常见了,能灵活运用可以使你在编程中游刃有余。简单说它就是一个能把方法当参数传递的对象,而且还知道怎么调用这个方法,同时也是粒度更小的“接口”(约束了指向方法的签名)。 委托的简单使用 一个委托类型定义了该类型的实例能调用的一类方法,这些方法含有同样的返回类型和同样参数(类型和个数相同)。委托和 阅读全文
posted @ 2020-03-05 21:03 ElevenXiao 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 多态性(C# 编程指南)转自MSDN 通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C# 中的每种类型都是多态的。类型可用作它们自己的类型或用作 Object 实例,因为任何类型都自动将 Object 当作基类型。 多态性不仅对派 阅读全文
posted @ 2020-03-05 20:53 ElevenXiao 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。 接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。 一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该 阅读全文
posted @ 2020-03-05 20:45 ElevenXiao 阅读(167) 评论(0) 推荐(1) 编辑
摘要: 反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了反射,即可对每一个类型了如指掌。另外我还可以直接创建对象,即使这个对象的类型在编译时还不知道。 反射的用途: (1)使用Assembly定义和加载程序集,加载在程 阅读全文
posted @ 2020-03-05 20:32 ElevenXiao 阅读(155) 评论(0) 推荐(1) 编辑
摘要: C# Generics and C++ templates are both language features that provide support for parameterized types. However, there are many differences between the 阅读全文
posted @ 2020-03-05 20:05 ElevenXiao 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 2.0版的.NET框架类库提供了一个新的命名空间,System.Collections.Generic,其中包含了一些已经可以使用的泛型容器类和相关的接口。和早期版本的.NET框架提供的非泛型容器类相比,这些类和接口更高效且是类型安全的。在设计、实现自定义的容器类之前,请你考虑是否使用或继承所列出类 阅读全文
posted @ 2020-03-05 20:03 ElevenXiao 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 当泛型类或泛型方法被编译为微软中间语言(MSIL)后,它所包含的元数据定义了它的类型参数。根据所给的类型参数是值类型还是引用类型,对泛型类型所用的MSIL也是不同的。 当第一次以值类型作为参数来构造一个泛型类型,运行时用所提供的参数或在MSIL中适当位置被替换的参数,来创建一个专用的泛型类型。[JX 阅读全文
posted @ 2020-03-05 20:01 ElevenXiao 阅读(364) 评论(0) 推荐(1) 编辑