深入剖析委托本质:如何全面把握委托概念?

2026-05-25 09:592阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2496个文字,预计阅读时间需要10分钟。

深入剖析委托本质:如何全面把握委托概念?

在上一篇随笔中,我们通过实例逐步引入了委托,并比较了委托和接口。本文将重点剖析委托的本质。

委托本质上是一个类,它继承了System.Mu。我们用关键字delegate声明委托时,所有这些委托都继承了System.Mu。

在上一篇随笔中我们通过示例逐步引入了委托,并比较了委托和接口。本文将重点剖析委托的实质。

委托在本质上仍然是一个类,我们用delegate关键字声明的所有委托都继承自System.MulticastDelegate。后者又是继承自System.Delegate类,System.Delegate类则继承自System.Object。委托既然是一个类,那么它就可以被定义在任何地方,即可以定义在类的内部,也可以定义在类的外部。

正如很多资料上所说的,委托是一种类型安全的函数回调机制, 它不仅能够调用实例方法,也能调用静态方法,并且具备按顺序执行多个方法的能力。

委托揭秘

在把委托说透(1)中可以看到,委托的使用其实是很简单的。尽管如此,其内部实现仍然相当复杂。.NET强大的编译器和CLR掩盖了这种复杂性。

为了解释方便,我们把(1)中的委托代码复制在下面,并做一处小小的改动,将LogToTextFile设置为实例方法。

阅读全文

本文共计2496个文字,预计阅读时间需要10分钟。

深入剖析委托本质:如何全面把握委托概念?

在上一篇随笔中,我们通过实例逐步引入了委托,并比较了委托和接口。本文将重点剖析委托的本质。

委托本质上是一个类,它继承了System.Mu。我们用关键字delegate声明委托时,所有这些委托都继承了System.Mu。

在上一篇随笔中我们通过示例逐步引入了委托,并比较了委托和接口。本文将重点剖析委托的实质。

委托在本质上仍然是一个类,我们用delegate关键字声明的所有委托都继承自System.MulticastDelegate。后者又是继承自System.Delegate类,System.Delegate类则继承自System.Object。委托既然是一个类,那么它就可以被定义在任何地方,即可以定义在类的内部,也可以定义在类的外部。

正如很多资料上所说的,委托是一种类型安全的函数回调机制, 它不仅能够调用实例方法,也能调用静态方法,并且具备按顺序执行多个方法的能力。

委托揭秘

在把委托说透(1)中可以看到,委托的使用其实是很简单的。尽管如此,其内部实现仍然相当复杂。.NET强大的编译器和CLR掩盖了这种复杂性。

为了解释方便,我们把(1)中的委托代码复制在下面,并做一处小小的改动,将LogToTextFile设置为实例方法。

阅读全文