当前位置: 首页 > news >正文

C#委托(入门)

1、语法

步骤

①定义一个委托类型, 如Help

②委托类型实例化为委托实例

③定义函数(与委托类型相匹配的)

④将函数交给委托实例使用

示例一

//方法一
void MyFunc1()
{Console.WriteLine("Hello");
}//方法二
void MyFunc2()
{Console.WriteLine("World");
}// 创建委托实例,并将 MyFunc1 方法绑定到委托
var foo = new Foo(MyFunc1);
// 通过 += 操作符将 MyFunc2 方法添加到委托
foo += MyFunc2;
// 调用委托,执行绑定的所有方法;加问号为空不报错
foo?.Invoke();// 委托声明
delegate void Foo();

示例二

void MyFunc1()
{Console.WriteLine("Hello");
}
void MyFunc2()
{Console.WriteLine("World");
}
Help p;
p = MyFunc1;
p();
p = MyFunc2;
p();delegate void Help();//委托就是一个装函数的容器

2、理解委托

普通变量存的是数据,而委托实例存的是行为

个人理解

委托就是用来装函数的

示例一:

using System.ComponentModel.Design;void GoStation(Help do_something)
{Console.WriteLine("去火车站");Console.WriteLine("找到站长");do_something();Console.WriteLine("离开火车站");
}void SayHello()
{Console.WriteLine("sayHello");
}GoStation(SayHello);
delegate void Help();

示例二

void GoStation(Help do_something)
{Console.WriteLine("去火车站");Console.WriteLine("找到站长");do_something();Console.WriteLine("离开火车站");
}void SayHello()
{Console.WriteLine("sayHello");
}
void HitHim()
{Console.WriteLine("HitHim");
}var p=new Help(SayHello);
p += HitHim;
GoStation(p);
delegate void Help();

3、委托的分类

返回类型和参数列表(类型和个数)相同就是同一种委托。

委托定义时就悄悄规范了接纳的函数

4、委托的简化

微软将委托和泛型结合到一起;

泛型是对类型的抽象,所以结合到一起后,只有参数列表中个数不同

泛型委托的种类只靠参数个数不同来区别

Action没有返回值;Func有返回值

用Action和Func来代替定义委托类型

示例

用匿名函数代替定义函数


http://www.mrgr.cn/news/2149.html

相关文章:

  • CKA-Day03:故障排除
  • PHP多项目多场景排队叫号系统源码
  • day02-JavaScript-Vue
  • wordpress二次开发 在Woocommerce相关产品中显示产品变体的方法
  • 权限修饰符
  • ES 模糊查询 wildcard 的替代方案探索
  • C++11:包装器
  • Unity动画模块 之 3D模型导入基础设置 Materials
  • Vue中解析换行展示
  • c++中加不加const的值传递和引用传递的区别
  • 2024华为OD机试真题-部门人力分配Python-C卷D卷-200分
  • 深度学习设计模式之享元设计模式
  • Spring Aware接口执行时机
  • 数据结构与算法 - 贪心算法
  • 使用 Python 进行 PDF 文件加密
  • 03 网络编程 TCP传输控制协议
  • GAMES104:08游戏引擎的动画技术基础-学习笔记
  • 如何将 Bamboo agent 能力迁移到极狐GitLab tag 上?
  • 【编程知识】如何有趣的理解变量的数据类型和数值
  • 以太网交换基础