本文章参考sikiC#高级篇,转载请注明出处。
如果我们要把方法当做参数来传递的话,就要用到委托。简单来说委托是一个类型,这个类型可以赋值一个方法的引用。
声明委托有四种方式。一种是原生的,另外三种是C#为了方便给我们封装好的。
四种声明方式分别为delegate, Action, Func,
在C#中使用一个类分为两个阶段,首先定义这个类,告诉编译器这个类由什么字段和方法组成,然后使用这个类实例化对象。在我们使用委托的时候,也需要经过这两个阶段,首先定义委托,告诉编译器我们这个委托可以指向哪些类型,然后,创建该委托的实例。
delegate定义和使用方式如下:
delegate void IntMethodInvoker(int x); static void Test1(int x) { Console.WriteLine("int值为:" + x); } static void Test2(string s) { Console.WriteLine("string值为:" + s); } static void Main() { IntMethodInvoker method = Test1; method(); // 以下操作是违法的 // IntMethodInvoker me = Test2; }
这个委托只能指向一个返回值为void有一个int参数的方法,其他方法是无法指向的。(未完待续)
原文:http://www.cnblogs.com/SHOR/p/6618846.html