一、匿名函数
1、定义
匿名函数顾名思义,就是没有名字的函数(方法)
2、特点
- 没有方法名
- 返回值类型由return语句自动推断
- 只能赋值给委托,通过委托调用该方法
3、使用案例演示
using System;
namespace ConsoleApp1
{
public delegate int MyDelegate(int a);
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
//正常委托
MyDelegate m1 = new MyDelegate(myClass.AddNum);
Console.WriteLine(m1(5));//输出5+5=10
//匿名函数
MyDelegate m2 = new MyDelegate(delegate (int a)
{
return a + a;
});
Console.WriteLine(m2(6));//输出6+6=12
}
}
class MyClass
{
public int AddNum(int a)
{
return a + a;
}
}
}
二、lambda表达式和系统委托
1、定义
lambda表达式是一种更为简洁的匿名函数,用=>表示
2、系统委托类型
- Func :有返回值
- Action:无返回值
- Predicate :返回布尔值,通常用于筛选操作,所以几乎不用
3、使用案例演示
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//Func<参数类型..., 返回值类型>
Func<int, int> f1 = new Func<int, int>((int a)=>
{
return a + a;
});
Console.WriteLine(f1(7));//输出7+7=14
//Action<参数类型>
Action<int> a1 = new Action<int>((int a) =>
{
Console.WriteLine(a + a);
});
a1(8);//输出8+8=16
}
}
}