55.什么事委托?
C#中的委托类都继承自System.Delegate类型。委托类型的生命与方法签名相似,有一个返回值和任意数目任意类型的参数。委托是一种可用于封装命名或匿名方法的引用类型。委托类似于函数指针,但是委托是类型安全和可靠的。
56.C#中被委托的方法必须是静态的吗?
通过上面的分析读者可以清晰地判别,委托不能能绑定静态方法,同时也可绑定实例方法。当绑定实例方法时,Delegate.Target属性将会设置成指向该实例方法所属类型的一个实例对象,当绑定静态方法时,Delegate.Target属性将会设置成null。
57.什么是多播委托?
多播委托是指由委托串成的链表,当链表上的一个委托被回调时,所有链表上该委托的后续委托将会被顺序执行。但要注意,多播委托必须是同类型的,返回类型必须是void,并且不能带输出参数(但可以带引用参数)。
58.列举一个C#中的委托应用。
委托的应用环境通常是任务的执行者把细节任务进行再次分配,执行者明确地知道被执行的工作是什么,而且可以把这些执行细节委托给其他组件、方法或者程序集。