【系列文章目录】
前言
本篇介绍匿名方法
一、可直接转换为委托类型
匿名方法是C#2.0中新增的一种无需使用指明函数就可以注册委托的方式
在C#1.0中我们声明一个委托是需要先声明一个指明方法才可以注册到委托的
public Action<int> OnValueChanged;
private void Awake()
{
OnValueChanged = OnSomeValueChanged;
}
void OnSomeValueChanged(int value)
{
Debug.Log(value);
}
而在C#2.0中我们不需要声明指明方法,可以使用匿名方法来注册一个委托
private void Awake()
{
OnValueChanged = delegate(int value) { Debug.Log(value); };
}
二、使用
匿名方法使用delegate运算符来定义
Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4)); // output: 7
三、C#3.0中的语法糖
C#3.0中匿名方法有一种更简洁的写法:
Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4)); // output: 7