Bootstrap

【C# 基础】委托(Delegate)与事件(Event)

一、委托(Delegate)

(一)委托是什么

  • 委托是存储对某个方法进行引用的引用类型变量,该变量可以作为其它方法的参数进行传递。
  • 与C中函数指针的异同:(同)都可以实现以引用的方式对某个方法进行访问和执行。(异)函数指针不是类型安全的,无法得知指针实际指向,也无法得知方法的参数与返回类型。委托是类型安全的,可以清晰得知方法定义的参数和返回类型。
// 派生自 System.Delegate 类
using System;

// 委托声明
// delegate <return type> <delegate-name> <parameter list> 
public delegate int MyDelegateClass(int value);

// 创建委托实例
// 使用 new 关键字创建, Func1 是某方法
MyDelegateClass FuncHandler = new MyDelegateClass(Func1)

(二)委托的意义

  • 实现 事件(Event)回调方法

(三)委托的使用

  • 先定义一个方法
using System;

namespace MyApp
{
   
	class A 
	{
   
		// 定义一个用于委托的方法
		public static int AddNumber(int num1, int num2)
		{
   
			return num1 + num2;
		}
	}
;