下面贴出代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Lambda表达式
{
class Program
{
static void Main(string[] args)
{
//lambda表达式的演变过程
//下面是C#1.0中创建委托实例的代码
Func<string, int> delegatetest1 = new Func<string, int>(callbackmethod);
//
//C#2.0中用匿名方法来创建委托实例,此事就不需要去额外定义回调方法callbackmethod了
Func<string, int> deledatetest2 = delegate(string text)
{
return text.Length;
};
//
//C# 3.0中使用lamabda表达式来创建委托实例
Func<string, int> delegatetest3 = (string text) => text.Length;
//
//可以省略类型参数string,从而代码再次简化
Func<string, int> delegatetest4 = (text) => text.Length;
//括号省略
Func<string, int> delegatetest = text => text.Length; //调用委托
Console.WriteLine("use lambda to retun text.length=" + delegatetest("helloworld"));
Console.WriteLine("------------------------------------------------------------");
//以上是lamada演变过程
//下面是lamada在订阅事件的使用 //定义一个按钮
Button btn = new Button() { Text = "点击我啊" };
btn.Click+=(sender,e)=>ReportEvent("点击按钮事件",sender,e);
//定义窗体显示
Form form = new Form() { Name = "在控制台创建的窗体", AutoSize = true, Controls = { btn } };
//运行窗体
Application.Run(form);
Console.Read();
}
private static int callbackmethod(string text)
{
return text.Length;
}
private static void ReportEvent(string title, object sender, EventArgs e)
{
Console.WriteLine("发生的事件为:{0}", title);
Console.WriteLine("发生事件的对象是:{0}",sender);
Console.WriteLine("发生事件的参数是:{0}",e.GetType());
}
}
}

不一样的风格,C#的lambda表达式的更多相关文章

  1. 不一样的编码风格--Lambda表达式

    Lambda表达式也是C#3.0中最重要的特性之一. 1.Lambda表达式的简介 Lambda表达式可以理解为一个匿名方法,它可以包含表达式和语句,并且用于创建委托或转换为表达式树.在使用Lambd ...

  2. lambda表达式

    什么是Lambda表达式 lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出 ...

  3. Java8 Lambda表达式和流操作如何让你的代码变慢5倍

    原文出处:ImportNew 有许许多多关于 Java 8 中流效率的讨论,但根据 Alex Zhitnitsky 的测试结果显示:坚持使用传统的 Java 编程风格——iterator 和 for- ...

  4. Java 8特性探究(1):通往lambda之路与 lambda表达式10个示例

    本文由 ImportNew 函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的ja ...

  5. Java8初体验(一)lambda表达式语法

    感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解 ...

  6. Upgrading to Java 8——第一章 Lambda表达式

    第一章 Lambda表达式 Lamada 表达式是Java SE 8中最重要的新特性,长期以来被认为是在Java中缺失的特性,它的出现使整个java 语言变得完整.至少到目前,在这节中你将学习到什么是 ...

  7. 转载 C#匿名函数 委托和Lambda表达式

    转载原出处: http://blog.csdn.net/honantic/article/details/46331875 匿名函数 匿名函数(Anonymous Function)是表示“内联”方法 ...

  8. Java 8 Lambda表达式10个示例【存】

    PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是 ...

  9. Java语言与JVM中的Lambda表达式全解

    Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法. ...

随机推荐

  1. AlertDialog.Builder 样式设置

    AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDia ...

  2. WebX配置文件、启动与响应流程

    ** 最近几天一直在看Spring的Ioc和AOP的源码介绍,还有Webx的使用.看Spring的源代码让人眼花缭乱,webx的配置文件也会让人感觉错综复杂无从下手.今天把之前看到的想到的webx相关 ...

  3. dom4j修改xml文件

    @SuppressWarnings("unchecked") @Override public void insertCustomInfo(File file, String mo ...

  4. bzoj1231

    看到n<=16不难想到状压dp 我们用二进制表示前x个位置,哪些牛被已经被选过了 这里我们可以通过穷举二进制数的顺序来转移 所以二维就够了 ..] of longint;     f:.. sh ...

  5. 【Android 复习】:第01期:引导界面(一)ViewPager介绍和使用详解

    一.ViewPager实现的效果图 二.ViewPager实现的功能 看到上面的效果图,想必大家已经猜出了这个类是干吗用的了,ViewPager类提供了多界面切换的新效果, 新效果有如下特征: < ...

  6. _GUN_SOURCE宏

    问题描述:在编译程序时,提示一个错误和一个警告. error:storage size of tz isn’t know: 其中tz是struct timezone类型的变量. warning:imp ...

  7. (转载)MySql按日期进行统计(前一天、本周、某一天)

    (转载)http://www.yovisun.com/mysql-date-statistics.html 在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_t ...

  8. (转载)struct 与typdef struct的区别

    (转载)http://blog.csdn.net/piratejk/article/details/3491226 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字. ...

  9. (转载)PHP解析URL并得到URL中的参数

    (转载)http://my.oschina.net/liuhui1990/blog/42232 <?php //例举一个URL格式的字符串: $str = 'http://test.com/te ...

  10. CodeFirst-数据迁移-Migration

    http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.html 1.安装最新NuGet 2.安装EntityFramework:在程序包管理器 ...