C# 委托详解
namespace ConsoleApp1
{
// 带一个参数并且无返回值的委托
//注意:委托相当于一个类型 与class平级,声明在命名空间内。
public delegate void DlgSayHello(string name);
class Program
{
}
}
我们先定义一个打招呼的方法:
public static void SayHello(string name)
{
Console.WriteLine($"{name},你好啊!");
}
随后我们在主函数利用委托将此方法以变量的形式进行传递,并以方法的形式调用。
namespace ConsoleApp1
{
// 带一个参数并且无返回值的委托
//注意:委托相当于一个类型 与class平级,声明在命名空间内。
public delegate void DlgSayHello(string name);
class Program
{
static void Main(string[] args)
{
DlgSayHello dlgsayHello = SayHello;//将方法赋给委托实例
dlgsayHello("小明"); //调用委托实例,相当于调用此方法
Console.ReadKey();
}
}
}
输出结果:
我们再定义一个方法:
public static void SayBye(string name)
{
Console.WriteLine($"{name},拜拜!");
}
同样传递给前面声明的委托:
namespace ConsoleApp1
{
// 带一个参数并且无返回值的委托
//注意:委托相当于一个类型 与class平级,声明在命名空间内。
public delegate void DlgSayHello(string name);
class Program
{
static void Main(string[] args)
{
DlgSayHello dlgsayHello = SayHello;//将方法赋给委托实例
dlgsayHello += SayBye;//通过+=使得此委托注册了两个实例
dlgsayHello("小明"); //调用委托实例,相当于调用此方法
Console.ReadKey();
}
}
}
输出结果:
ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里...
从另一台机器上复制过来的项目,由于两台机器的库目录不一致,导致了stdio.h等很...
Greediness(贪婪型):最大匹配 X、X*、X+、X{n,} 是最大匹配。例如你要用 “....
本文实例讲述了正则表达式中的操作符及说明。分享给大家供大家参考,具体如下: ...
1 . 目标 演示下图的git reset 各选项的效果。 2. Git Reset操作说明 图中说明:...
橡皮擦一个逗趣的互联网高级网虫。 观前提醒本篇文章涉及知识点巨大建议先收藏再...
Go原生就支持连接数据库,所以在使用 Golang 开发时,当需要数据库交互时,即可...
2月23日消息 据外媒 Windows Latest 今日报道,借助 Windows 10 Sun Valley 更新...
3月22日消息 外媒 Winfuture 报道,此前微软面向 Insider 预览用户公布了 Window...
这些日子一直在简书上使用markdown写作,已经渐渐的痴迷于这种简洁纯粹的写作方...