C#委托基础8——lambda表达式

 

C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。

class Program
{
        double AddInt(int x, int y)
        {
            return x + y;
        }

        string AddString(string s1, string s2)
        {
            return s1 + s2;
        }

        static void Main(string[] args)
        {
            Program p = new Program();

            // 以为前两个参数为int,他们运行的结果为double,最后一个参数与AddInt返回值一致
            Func<int, int, double> funcInt = p.AddInt;
            Console.WriteLine("funcInt的值为{0}", funcInt(100, 300));

            Func<string, string, string> funcString = p.AddString;
            Console.WriteLine("funcString的值为{0}", funcString("aaa", "bbb"));

            // 匿名方法
            Func<float, float, float> fucFloat = delegate(float x, float y)
            {
                return x + y;
            };
            Console.WriteLine("funcFloat的值为{0}", fucFloat(190.7F, 99999.9F));

            // Lambda表达式
            Func<string, string, string> funString2 = (x, y) => (x + y);
            Console.WriteLine("funString2的值为{0}", funString2("ttt", "bbb"));
            Console.ReadLine();
        }
}

 本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容

时间: 2024-10-24 19:08:07

C#委托基础8——lambda表达式的相关文章

Lambda 表达式

Lambda 表达式(C# 编程指南) 更新:2007 年 11 月 "Lambda 表达式"是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型. 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为"goes to".该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块.Lambda 表达式 x => x * x 读作"x goes to x times x".可

Lambda表达式表达式树

在C#3.0中,继匿名方法之后出现了Lambda 表达式,使表达更为简洁.快捷.Lambda 表达式使用Lambda 运算符 "=>"来定义,语法如下: (参数列表) => {方法体} Lambda 运算符的左边是输入参数,定义Lambda表达式的接收参数列表,右边包含表达式或语句块,表示将表达式的值或语句块返回的值传给左边的参数列表. Lambda 表达式是一个匿名函数,可以包含表达式和语句,并且可用于创建委托或表达式目录树类型. 以下部分来自MSDN:点击打开链接 La

C# 委托,事件和Lambda表达式

关于这个论题,Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考.C# vs C++之一:委托 vs 函数指针 比较了委托和C++指针的区别. .NET 中的委托确实和C/C++的函数指针非常相似.它是一个值类型,它包装了一个指向方法的引用.它的作用也是为了能够将方法和变量一样作为参数传递.委托的典型应用是控件的事件处理方法.很显然,一个控件在设计的时候没有办法知道当特定事件发生的时候,需要什么方法来处理,这就需要将方法作为参数传递

一起谈.NET技术,C# 委托,事件和Lambda表达式

关于这个论题,Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考.C# vs C++之一:委托 vs 函数指针 比较了委托和C++指针的区别. .NET 中的委托确实和C/C++的函数指针非常相似.它是一个值类型,它包装了一个指向方法的引用.它的作用也是为了能够将方法和变量一样作为参数传递.委托的典型应用是控件的事件处理方法.很显然,一个控件在设计的时候没有办法知道当特定事件发生的时候,需要什么方法来处理,这就需要将方法作为参数传递

从.NET中委托写法的演变谈开去(中):Lambda表达式及其优势

在上一篇文章中我们简单探讨了.NET 1.x和.NET 2.0中委托表现形式的变化,以及.NET 2.0中匿名方法的优势.目的及注意事项.那么现在我们来谈一下.NET 3.5(C# 3.0)中,委托的表现形式又演变成了什么样子,还有什么特点和作用. .NET 3.5中委托的写法(Lambda表达式) Lambda表达式在C#中的写法是"arg-list => expr-body","=>"符号左边为表达式的参数列表,右边则是表达式体(body).参数列表

为LINQ服务的C#新特性总结篇---扩展方法,匿名委托,lambda表达式,Action委托,Func委托,Linq中的order by,top和sum函数

Codeusing System;using System.Collections.Generic;using System.Linq;using System.Text; using System.Diagnostics; namespace ConsoleApplication1{    static class Program    {        static void Main(string[] args)        {            //Predicate       

一起谈.NET技术,从.NET中委托写法的演变谈开去(中):Lambda表达式及其优势

在上一篇文章中我们简单探讨了.NET 1.x和.NET 2.0中委托表现形式的变化,以及.NET 2.0中匿名方法的优势.目的及注意事项.那么现在我们来谈一下.NET 3.5(C# 3.0)中,委托的表现形式又演变成了什么样子,还有什么特点和作用. .NET 3.5中委托的写法(Lambda表达式) Lambda表达式在C#中的写法是"arg-list => expr-body","=>"符号左边为表达式的参数列表,右边则是表达式体(body).参数列表

python基础教程之lambda表达式使用方法_python

Python中,如果函数体是一个单独的return expression语句,开发者可以选择使用特殊的lambda表达式形式替换该函数: 复制代码 代码如下: lambda parameters: expression lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.下面是

C#委托与Lambda表达式

转自:http://www.cnblogs.com/nokiaguy/archive/2008/06/09/1216166.html 本文介绍了.net 3.5 framework中的Lambda表达式.这种表达式可以取代delegate,作为方法指针来使用.    在C#2.0及C#1.x中,需要使用delegate来定义方法指针.如下面的代码如示: public delegate bool Filter(int num);  // delegate类型 public int[] search