C#委托-委托不关心被封装的类

委托是C#中的一个全新的概念。类似于C++中的函数指针。但是,不像C++中的函数指针,委托是完全面向对象的; 不像指向成员函数的指针,委托封装一个对象的实例方法或静态方法。

一个委托声明定义一个从System.Delegate派生的类。一个委托实例封装一个或多个方法,每一个被称为可调用的实体。委托的最有用和感兴趣的是,它不知道或不关心,它所封装的方法的类。所以说,委托是"匿名"引用。

using System;
//委托声明
delegate void MyDelegate();
//实现委托的类,一个静态方法,一个实例方法
public class MyClass
{
public void InstanceMethod()
{
    Console.WriteLine("实例方法被调用。");
}

static public void StaticMethod()
{
    Console.WriteLine("静态方法被调用。");
}
}

//主要类,包括Main()函数
public class MainClass
{
static public void Main()
{
    //一个委托类的实例
    MyClass p = new MyClass();

    //委托实例方法
    MyDelegate d = new MyDelegate(p.InstanceMethod);
    d();

    //委托静态方法
    d = new MyDelegate(MyClass.StaticMethod);
    d();
}
}

posted on 2012-06-28 07:19  流星落  阅读(254)  评论(0编辑  收藏  举报

导航