using System;
namespace ConsoleApp4
{
delegate void test(string s);
class Program
{
static void Main(string[] args)
{
test func1 = delegate (string s) { Console.WriteLine(s); };
test func2 = (x) => { Console.WriteLine(x); };
//這里的匿名函數(shù)都是一個函數(shù)塊,也可以使用一個表達式,這樣會將表達式結(jié)果返回如(x) => x*x 如果傳入5,則返回25暇藏。
}
}
}
分別使用delegate關鍵字創(chuàng)建一個匿名函數(shù),和使用lambda創(chuàng)建一個匿名函數(shù)濒蒋。他們都是賦給一個委托盐碱。
使用delegate關鍵字創(chuàng)建的匿名函數(shù)可以沒有參數(shù)列表,而lambda創(chuàng)建的匿名函數(shù)要有參數(shù)列表沪伙。
所有需要傳遞一個函數(shù)作為參數(shù)的地方都可以傳遞一個匿名函數(shù)甸各。
匿名函數(shù)的參數(shù)不可以使用ref、out等關鍵字焰坪,不可以在不安全模式下使用匿名函數(shù)趣倾。
參考:https://www.bilibili.com/video/BV1TJ411h7cZ?p=227
同樣可以聲明一個泛型委托來實現(xiàn)一個泛型的匿名函數(shù)。