15.2 委托是引用类型
在第1章我们已经学习过,委托和类一样都是引用类型。事实上,每一个委托都默认继承自S y s t e m.M u l t i c a s t D e l e g a t e类,而后者是抽象类,它又继承自System.Delegate类。因此,这样一种继承关系如图15-3所示。
委托虽然是从System.Delegate类派生,但不能像定义常规类型一样直接从System.Delegate派生,对委托的声明只能通过16.1节的语法格式进行声明。编译器通过delegate关键字得知,这是一个委托类型,从而在编译的时候对该类进行封装,对这一过程C#定义了专门的语法来处理这一过程。
图 15-3 委托的继承结构