匿名方法与Lambda表达式

匿名方法的概念:这个方法没有具体的名称,而只有委托关键字、方法参数、方法体,所以称为匿名方法,匿名方法允许将代码块通过委托变量作为参数传递,以代替单独定义的方法。

首先声明一个委托:

public delegate int CalculatorDelegate(int a, int b);

然后使用匿名方法:
            CalculatorDelegate objCal = delegate (int a, int b)
            {
                return a + b;
            };
            int result = objCal(10, 40);
            Console.WriteLine(result );

输出结果:50

c#3.0 引入了Lambda表达式,利用它们可以更简练地编写代码块。Lambda表达式:(参数列表)=>{方法体} goes to.

首先定义一个委托:

 public delegate int CalculatorDelegate(int a, int b);

第一种Lambda表达式方法:CalculatorDelegate objCal = (int a, int b) => { return a + b; };

更简化的方法:CalculatorDelegate objCal = (a,b) => { return a + b; };

int result = objCal(10,20);

Console.WriteLine(result );

输出结果为:30

实例二:

public delegate int MathOne(int a);

MathOne objMath=a=>a*a;

int result=objMath(10);

输出result结果为:100

说明:参数列表中的参数类型可以是“明确”类型或者是“推断”类型,如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来。Lambda表示式本身就是匿名方法,Lambda表达式的参数允许不指名参数类型,而匿名方法的参数必须明确指明参数类型,Lambda表达式方法体允许由单一表达式或者多条语句组成,而匿名方法不允许单一表达式形式。

猜你喜欢

转载自blog.csdn.net/qq_37589387/article/details/88547154