C#匿名函数,lambda表达式笔记

一.匿名函数

匿名函数是一种定义时不起函数名的技术,因此无法直接调用,通常用来赋值给委托后被委托调用。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的

它的语法形式为:delegate (input-parameters) { statement; } 

二.lambda表达式

Lambda 表达式语法提供了=> 运算符来创建匿名函数,因此是匿名函数的简化形式。

(input-parameters) => { statement; }

当只有一个参数时,小括号和参数类型可省略,否则括号是必须的。

namespace Console0719
{
    class Program
    {
        public class DelegateTest
        {
            public static int add10(int a)
            {
                return 10 + a;
            }

        }
        //step1:声明委托(类似函数签名,无需实现)
        public delegate int Cal(int a);
        static void Main(string[] args)
        {

            Cal cal1 = DelegateTest.add10;
            Console.WriteLine("方法初始化委托:");
            Console.WriteLine(cal1(3)); //输出13 

            Cal cal2 = delegate (int a){
                return 10 + a;
            };
            Console.WriteLine("匿名方法初始化委托:");
            Console.WriteLine(cal2(3)); //输出13

            Cal cal3 = (int a) =>
            {
                return 10 + a;
            };
            Console.WriteLine("lambda初始化委托:");
            Console.WriteLine(cal3(3)); //输出13

            Cal cal4 = a =>
            {
                return 10 + a;
            };
            Console.WriteLine("简化lambda初始化委托:");
            Console.WriteLine(cal4(3)); //输出13
        }
    }
}

你可能感兴趣的:(c#)