摘要: 泛型接口 没有泛型接口,每次试图使用一个非泛型接口(如IComparable)来操纵一个值类型时,都会进行装箱,而且会丢失编译时的类型安全性。这会严重限制泛型类型的应用。所以,CLR提供了对泛型接口的支持。一个引用类型或值类型为了实现一个泛型接口,可以具体指定类型实参;另外,一个类型也可以保持类型实参的未指定状态来实现一个泛型接口。来看一些例子: 以下泛型接口定义是作为FCL的一部分发布的:public interface IEnumerable<T> : IDisposable, IEnumerator {T Current { get; }} 下面这个示例实现了上述泛型接口,且 阅读全文
posted @ 2011-10-25 15:45 迷失的流星 阅读(290) 评论(0) 推荐(0)
摘要: 一言以蔽之: 委托是指将一个方法作为参数传递给另外一个参数,它实现起来极其类似于一个类,而实际上它是一个特殊的类。 事件是一种特殊的委托,是委托的实例。委托的使用: Note:使用委托的全过程与使用一个类的全过程完全相同。同样需要先定义一个类,然后调用的时候实例化等等。 example:namespace DelegateDemo{class Program{public delegate void GreetDelegate(string name);//先定义委托private static void EnglishGreet(string name)//定义两个方法{Consol... 阅读全文
posted @ 2011-10-25 15:15 迷失的流星 阅读(156) 评论(0) 推荐(0)
摘要: 一、了解C#中的预定义事件处理机制在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。EventArgs是包含事件数据的类的基类,用于传递事件的细节。EventHandler是一个委托声明如下public delegate void EventHandler( object sender , EventArgs e )注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。下面我们研究一下Button类看看其中的事件声明(使用WinCV工具查看),以Cli 阅读全文
posted @ 2011-10-25 15:14 迷失的流星 阅读(190) 评论(0) 推荐(0)