# 委托
委托允许捕捉对方法的引用,并像传递其他对象那样传递引用,像调用其他方法那样调用被捕捉的方法。
委托类型 表示对具有特定参数列表和返回类型的方法的引用。 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。 委托还类似于其他一些语言中存在的“函数指针”概念。 与函数指针不同,委托是面向对象且类型安全的。
系统的委托类型
System.Action 无返回值的方法,最多16个参数
System.Func 有返回值的方法,同样最多16个参数
委托是将方法作为方法的参数
在IL中查看委托可以看到 委托被编译成一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
← 类与结构体的区别