1. 程式人生 > 其它 >C# 匿名函式_C# 匿名函式使用整理

C# 匿名函式_C# 匿名函式使用整理

技術標籤:C#C# 匿名函式C# 匿名函式使用

一、C# 匿名函式簡介

匿名方法:沒有名字的方法,不需要名字的方法。

匿名方法是沒有名稱只有主體的方法。

匿名方法和委託搭載使用。

匿名方法 精確點可以改叫 匿名函式。

委託是用於引用與其具有相同標籤的方法。換句話說,您可以使用委託物件呼叫可由委託引用的方法。

匿名方法(Anonymous methods)提供了一種傳遞程式碼塊作為委託引數的技術。

在匿名方法中您不需要指定返回型別,它是從方法主體內的 return 語句推斷的。

二、 C# 匿名函式使用場景

1. delegate 委託匿名方法

    //委託
    delegate int CalcuteSum(int num1,int num2);

        static void ObjectTest1()
        {
            //委託匿名方法1
            CalcuteSum calcuate1 = delegate (int num1, int num2)
            {

                return num1 + num2;
            };

            int result = calcuate1(1, 2);
            Console.WriteLine(result);//3

            //委託匿名方法1
            calcuate1 = delegate (int num1, int num2)
            {
                return num1 + num2 + 1;
            };


            int result2 = calcuate1(1, 2);
            Console.WriteLine(result2);//4

            //委託靜態方法
            calcuate1 = TestSum;
            int result3 = TestSum(1, 2);
            Console.WriteLine(result3);//5
        }

        static int TestSum(int num1, int num2)
        {
            return num1 + 1 + num2 + 1;
        }

2. 匿名方法 和 Lamda表示式

從 C# 3 開始,lambda 表示式提供了一種更簡潔和富有表現力的方式來建立匿名函式。 使用 => 運算子構造 lambda 表示式:

Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4));  // output: 7

3.方便開發和使用的委託 Action,Func

Action: 沒有返回型別的委託定義。

Action greet = delegate { Console.WriteLine("Hello!"); };
greet();
Action<int, int> getNum = delegate (int num1, int num2)
{
    var result = num1 * num2;

    Console.WriteLine(result);
};

Func :需要返回型別的委託定義。

Func<int, int, int> sum = static delegate (int a, int b) { return a + b; };
Console.WriteLine(sum(10, 4));  // output: 14

更多:

C# 匿名物件_C#匿名型別_C# 匿名物件使用整理

C# 陣列_C#動態陣列詳解整理

DotNet 開發專案型別整理_C#開發專案型別整理