本文摘自PHP中文网,作者Y2J,侵删。
这篇文章主要介绍了C#中委托的+=和-=深入研究,本文深入研究+=和-=在执行时都做了哪些事情,加深对C#委托的理解和使用,需要的朋友可以参考下写在前面
为什么会突然想说说委托?原因吗,起于一个同事的想法,昨天下班的路上一直在想这个问题,如果给委托注册多个方法,会不会都执行呢?为了一探究性,就弄了个demo研究下。
+=
大家都知道委托都继承自System.MulticastDelegate,而System.MulticastDelegate又继承自System.Delegate,可以通过+=为委托注册多个方法。那么他们是否都执行了呢?执行的结果又是怎样的呢?有返回值和没返回值的是否结果是否一样?那就试着说说+=都干了哪些事?
测试代码
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | namespace Wolfy.DelegateDemo
{
public delegate void ShowMsg( string msg);
public delegate int MathOperation( int a, int b);
class Program
{
static ShowMsg showMsg;
static MathOperation mathOperation;
static void Main( string [] args)
{
showMsg += ShowHello;
showMsg += ShowHello1;
showMsg( "大家新年好啊" );
mathOperation += Add;
mathOperation += Multiply;
int result = mathOperation(1, 2);
Console.WriteLine(result.ToString());
Console.Read();
}
static void ShowHello( string msg)
{
Console.WriteLine( "哈喽:" + msg);
}
static void ShowHello1( string msg)
{
Console.WriteLine( "哈喽1:" + msg);
}
static int Add( int a, int b)
{
return a + b;
}
static int Multiply( int a, int b)
{
return a * b;
}
}
}
|
你可以猜猜运行结果,如下图:

阅读剩余部分
相关阅读 >>
详解介绍C#是如何获取文件md5与sha1
C#调用默认浏览器打开网页的几种方法具体介绍(图)
C#实现原图片转缩略图
C#的socket实现udp协议通信的示例代码详解
详细介绍winformC#获得mac地址,ip地址,子网掩码,默认网关的代码实例(图)
C#最齐全的上传图片方法介绍
C#如何连接数据库?oledbconnection与sqlconnection的区别
详细介绍data url生成工具C#版第二版的示例代码
C#中实现退出程序后自动重新启动程序的示例代码分享
C#将unicode编码转换为汉字字符串的代码分析
更多相关阅读请进入《C#》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 深入讲解C#中委托的+=和-=