先不说 C# 中的委托编程,先从生活中的例子入手。
场景一:
防疫期间,外卖人员不能进入花园小区。外卖小哥到了花园小区门口,只好【委托】花园的保安人员,把东西送上楼去。
场景二:
有资格的人,都在排队办事。那么不够资格排队的人,也想要办同样的事,应该怎么办?那就只好【委托】那些有资格的人帮忙办了。
场景三:
C# 编程时,经常碰到:一个进程,不是任何一个子线程,都可以去使用某些资源,比如主线程的列表框。这个时候,就需要【委托】。
委托有很多种,只说一种,大概这么做:
1. 声明委托;委托的关键字 delegate + 返回值类型 + 委托类型名(参数)
2. 想委托做点什么;就是写一个方法,就是要做什么的代码,也可以说是要执行的代码;
3. 创建一个委托实例;
4. 调用委托实例;关键字 invoke 去调用委托实例,完成任务。
5. 举个例子,说明上面的步骤,运行验证过,也可以到网上找找实例,更容易理解一些。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
internal class Program
{
// 声明一个委托类型
public delegate string DelegateTest();
private static void Main(string[] args)
{
// 实例化委托
DelegateTest wt = new DelegateTest(Program.weituo_str);
// 调用委托
Console.WriteLine(Environment.NewLine + wt.Invoke());
Console.Read();
}
//委托方法
private static string weituo_str()
{
return " 委托试试!";
}
}
}
6. 运行结果图: