写了一个小程序,能够很好的认识到这三个的用法

namespace Lambda
{
/// <summary>
/// 实现根据指定运算形式 输出结果
/// </summary>
class Program
{
delegate int TwoInt32OperationDel(int paramA, int paramB);
static void Operation(TwoInt32OperationDel del)
{
for (int i = ; i < ; i++)
{
for (int y = ; y < ; y++)
{
int result = del(i, y);
Console.Write("{0}and{1}={2} ",i,y,result);
}
Console.WriteLine();
}
}
private static int twoInt32Plus(int a, int b)
{
return a + b;
}
private static int twoInt32Multi(int a, int b)
{
return a * b;
}
static void Main(string[] args)
{
////1 匿名委托方法调用:(匿名方法只是简化了一下代理的写法)
// Console.WriteLine("A+B");
// Operation(delegate(int a, int b) {return a + b; });
// Console.WriteLine("A*B");
// Operation(delegate(int a, int b) { return a * b; });
// Console.Read(); //2 代理
Console.WriteLine("A+B");
TwoInt32OperationDel t = new TwoInt32OperationDel(twoInt32Plus);
TwoInt32OperationDel t2 = new TwoInt32OperationDel(twoInt32Multi);
Operation(t);
Console.WriteLine("A*B");
Operation(t2);
Console.Read(); ////3 Lambda方法调用
//Console.WriteLine("A+B");
//Operation((a, b) => { return a + b; });
//Console.WriteLine("A*B");
//Operation((a, b) => { return a * b; });
//Console.Read();
}
}
}

事件的使用:

       public delegate int plusDelegate(int a,int b);
public event plusDelegate pl;
public int plus(int a, int b)
{
return a + b;
}
private void button7_Click(object sender, EventArgs e)
{
pl += plus;
textBox3.Text = pl(, ).ToString();
}

委托的使用:

 public delegate int plusDelegate(int a,int b);
public int plus(int a, int b)
{
return a + b;
} private void button7_Click(object sender, EventArgs e)
{
plusDelegate p = new plusDelegate(plus);//方法1
plusDelegate p = (int a, int b) => { return a + b; };//方法2
plusDelegate p = delegate(int a, int b) { return (a + b); };//方法3 textBox3.Text = p(, ).ToString();
}

帮助理解委托、匿名委托、Lambda表达式还有事件的更多相关文章

  1. C#多线程+委托+匿名方法+Lambda表达式

    线程 下面是百度写的: 定义英文:Thread每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.进程也可能是整个程序或者是部分程序的动态执行.线程是一组指令的集合,或者是程序的特殊段,它 ...

  2. (28)C#委托,匿名函数,lambda表达式,事件

    一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...

  3. 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】

    1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...

  4. 委托、Lambda表达式、事件系列05,Action委托与闭包

    来看使用Action委托的一个实例: static void Main(string[] args) { int i = 0; Action a = () => i++; a(); a(); C ...

  5. 委托、Lambda表达式、事件系列03,从委托到Lamda表达式

    在"委托.Lambda表达式.事件系列02,什么时候该用委托"一文中,使用委托让代码简洁了不少. namespace ConsoleApplication2 { internal ...

  6. C++实现委托机制(三)——lambda表达式封装

    C++.引言:              其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...

  7. C#高级编程(第9版) 第08章 委托、lambda表达式和事件 笔记

          本章代码分为以下几个主要的示例文件: 1. 简单委托 2. 冒泡排序 3. lambda表达式 4. 事件示例 5. 弱事件     引用方法 委托是寻址方法的.NET版本.在C++中函数 ...

  8. 委托、Lambda表达式、事件系列07,使用EventHandler委托

    谈到事件注册,EventHandler是最常用的. EventHandler是一个委托,接收2个形参.sender是指事件的发起者,e代表事件参数. □ 使用EventHandler实现猜拳游戏 使用 ...

  9. 委托、Lambda表达式、事件系列06,使用Action实现观察者模式,体验委托和事件的区别

    在"实现观察者模式(Observer Pattern)的2种方式"中,曾经通过接口的方式.委托与事件的方式实现过观察者模式.本篇体验使用Action实现此模式,并从中体验委托与事件 ...

  10. 委托、Lambda表达式、事件系列04,委托链是怎样形成的, 多播委托, 调用委托链方法,委托链异常处理

    委托是多播委托,我们可以通过"+="把多个方法赋给委托变量,这样就形成了一个委托链.本篇的话题包括:委托链是怎样形成的,如何调用委托链方法,以及委托链异常处理. □ 调用返回类型为 ...

随机推荐

  1. java中String、StringBuffer、StringBuilder的区别

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...

  2. VMware-Transport(VMDB) error -44:Message.The VMware Authorization Service is not running解决方案

    出现的错误如下: 原因:本机中有一个VMware服务未开启导致的. 解决方案: 1.打开“运行”->输入services.msc !!!文章转自浩瀚先森博客,转载请注明,谢谢.http://ww ...

  3. 【Alpha版本】十天冲刺集结令

    031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬涛 [Alp ...

  4. opencv6.2-imgproc图像处理模块之图像尺寸上的操作及阈值

    接opencv6.1-imgproc图像处理模块之平滑和形态学操作,顺带说一句在opencv中的in-place操作就是比如函数的输入图像和输出图像两个指针是相同的,那么就是in-place操作了.比 ...

  5. StackExchange.Redis--纯干货喂饱你

    Redis和StackExchange.Redis redis有多个数据库1.redis 中的每一个数据库,都由一个 redisDb 的结构存储.其中,redisDb.id 存储着 redis 数据库 ...

  6. JAVA多线程(二)

    Synchronized的使用: (一)synchronized:  Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 当某个方法或者代 ...

  7. memcache 安装

    1 下载两个文件 wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz wget http://www.monkey.org/ ...

  8. [转]Windows系统注册表知识完全揭密

    来源:http://www.jb51.net/article/3328.htm Windows注册表是帮助Windows控制硬件.软件.用户环境和Windows界面的一套数据文件,注册表包含在Wind ...

  9. 【转】赶集网mysql开发36军规

    原文链接:https://segmentfault.com/a/1190000004711147 写在前面的话:总是在灾难发生后,才想起容灾的重要性:总是在吃过亏后,才记得曾经有人提醒过. (一)核心 ...

  10. mysql 定义自增

    The database returned no natively generated identity value问题 alter table user_table MODIFY user_id I ...