Lamdba表达式

1.匿名方法

myTime.Elspsed +=

delegate(object source, ElapsedEventArgs e)

{

  Console.WriteLine((source as Timer).Interval);

};

2.把Lamdba表达式用于匿名方法

myTime.Elspsed += (source,e) => Console.WriteLine((source as Timer).Interval);

Lamdba表达式由三部分组成:

  • 放在括号中的参数列表
  • =>运算符
  • C#语句
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LambdaaOne
{
    public delegate int TwoIntOperationDelegate(int paramA,int paramB);

    class Program
    {
        static void PerformOperation(TwoIntOperationDelegate del)
        {
            for (int paramAVal = 1; paramAVal<=5; paramAVal++)
            {
                for (int paramBVal = 1; paramBVal <= 5; paramBVal++)
                {
                    int delegateResult = del(paramAVal, paramBVal);
                    Console.Write("f({0},{1})={2}",paramAVal,paramBVal, delegateResult);

                    if (paramBVal != 5)
                    {
                        Console.Write(",");
                    }
                }

                Console.WriteLine();
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine("f(a,b) = a+b: ");
            PerformOperation((paramA, paramB) => paramA + paramB);

            //or
            PerformOperation(
                delegate(int paramA, int paramB)
                {
                    return paramA + paramB;
                });

            //or
            PerformOperation(
                (paramA, paramB)=>
                {
                    return paramA + paramB;
                });

            Console.WriteLine();

            Console.WriteLine("f(a,b) = a*b: ");
            PerformOperation((paramA, paramB) => paramA * paramB);
            Console.WriteLine();

            Console.WriteLine("f(a,b) = (a-b)%b: ");
            PerformOperation((paramA, paramB) => (paramA - paramB) % paramB);
            Console.WriteLine();

            Console.ReadLine();
        }
    }
}

总结:Lambda其实定义了一个匿名方法的快捷方式。

原文地址:https://www.cnblogs.com/zzunstu/p/3405181.html