C#==>委托

1,.NET的委托实际上是实现了函数指针的概念。比如C或者C++对于windows API中的回调函数的使用实际上就是方法调用的指针。

     VB  中的AddressOf关键字也实现了该功能。

 

2,当我们把方法传递给其他方法时,需要使用委托。
     需要用到方法作为参数传递的几个实例:
     ①,启动线程。Thread类的构造函数
     ②,事件。事件发生时,把处理时间的方法传送为委托的一个参数。
  
3,.NET中不允许直接引用函数的指针,必须把方法的细节封装在一种新类型的对象中,即委托。
     委托实际上是一种特殊的对象类型,委托不包含数据,有的仅仅是方法的地址。
  
4,委托的声明。委托的声明中包含了方法的全部细节,①返回类型,②带有的参数
     例:delegate void MyMethod(int i);
     ※:地应委托实际上是定义了一个新类,所以可以在定义类的任何地方地址委托,
           而不必非要定义在一个类的内部。

 

5,委托的使用

 

6,实例

namespace 委托
{
    delegate void MyMethod(int i);    

    class Program
    {
        static void showInt(int i)
        {
            Console.WriteLine(i.ToString());
        }

        static void Main(string[] args)
        {
            MyMethod my = new MyMethod(showInt);
            
            //C#2.0之后可以使用如下方式定义委托
              MyMethod my2 = showInt;

            my(100);
            //实际上编译器会编译为 my.Invoke(100);

            my2(1000);
            
            //结果为100,1000
            Console.Read();
        }  
    }
}

 7,委托的实例可以表示任何类型的任何对象上的实例方法或静态方法。

posted @ 2014-10-31 18:22  Net-Spider  阅读(153)  评论(0)    收藏  举报