1. 程式人生 > 實用技巧 >C# 匿名函式

C# 匿名函式

匿名函式是一個“內聯”語句或表示式,可在需要委託型別的任何地方使用。可以使用匿名函式來初始化命名委託,或傳遞命名委託(而不是命名委託型別)作為方法引數。

C# 中委託的發展 C# 1.0 中,您通過使用在程式碼中其他位置定義的方法顯式初始化委託來建立委託的例項。 C# 2.0 引入了匿名方法的概念,作為一種編寫可在委託呼叫中執行的未命名內聯語句塊的方式。 C# 3.0 引入了 Lambda 表示式,這種表示式與匿名方法的概念類似,但更具表現力並且更簡練。這兩個功能統稱為“匿名函式”。通常,針對 .NET Framework 版本 3.5 及更高版本的應用程式應使用 Lambda 表示式。
下面的示例演示了從 C# 1.0 到 C# 3.0 委託建立過程的發展:
class Test
{
    delegate void TestDelegate(string s);
    static void M(string s)
    {
        Console.WriteLine(s);
    }

    static void Main(string[] args)
    {
        //形式1
        TestDelegate testDelA = new TestDelegate(M);
     //形式2
        TestDelegate testDelB 
= delegate(string s) { Console.WriteLine(s); }; //形式3 TestDelegate testDelC = (x) => { Console.WriteLine(x); }; testDelA("Hello. My name is M and I write lines."); testDelB("That's nothing. I'm anonymous and "); testDelC("I'm a famous author."); Console.WriteLine(
"Press any key to exit."); Console.ReadKey(); } }