C#委托-委托概述
C#委托概述:
委托这个词在生活中经常用到,委托律师打官司,委托房地产公司购买房子。委托保险代理人办理保险。委托就是把事情交给别人去办。C#中的委托和生活中的委托很相似,如果将一个方法委托给一个对象,那么这个对象就可以全权代理这个方法执行。
委托声明定义一个类,它是从 System.Delegate 类派生的类。委托既然是一个类,那么它就可以被定义在任何地方,即可以定义在类的内部,也可以定义在类的外部。
委托类似于函数指针,但是,与函数指针不同,委托是面向对象和类型安全的。函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法。
C#委托实例封装了一个调用列表,该列表列出了一个或多个方法,每个方法称为一个可调用实体。对于实例方法,可调用实体由一个实例和该实例的方法组成。对于静态方法,可调用实体仅由一个方法组成。如果用一组合适的参数来调用一个C#委托实例,则该C#委托实例所封装的每个可调用实体都会被调用,并且用的都是上述的同一组参数。
C#委托实例的一个有趣且有用的属性是:它既不知道也不关心有关它所封装的方法所属的类的种种详情;对它来说最重要的是这些方法与该委托的类型兼容。这使委托非常适合“匿名”调用。这是一个强大的功能。