C#中沒有名稱的函數稱為匿名函數,也可以表示為沒有名稱的函數。 C# 中的匿名函數有兩種類型,即C# 中的Lambda 表達式和C# 中的匿名方法,其中用於建立委託的匿名函數在C# 中稱為Lambda 表達式,使用該表達式可以建立本地函數並作為參數和查詢傳遞LINQ 也可以藉助Lambda 表達式來編寫。匿名方法也提供相同的功能,只是它允許不使用參數清單。
C# 中有兩種類型的匿名函數。他們是:
(input-parameters) => expression
在程式中示範 Lambda 表達式求數字平方的 C# 程式:
代碼:
using System; //a namespace called program is defined namespace program { //a class called check is defined class check { delegate int Findsquare(int number); //main method is called static void Main(string[] args) { //a lambda expression to find the square of a number is defined Findsquare Obtainsquare = r => r * r; int l = Obtainsquare(3); Console.WriteLine("The Square of the given number is: "+l); } } }
輸出:
在上面的程式中,定義了一個名為program的命名空間。然後定義一個名為check的類別。然後呼叫main方法。然後定義 lambda 表達式來求數字的平方。顯示使用 lambda 表達式找到的數字的平方。
在程式中示範 Lambda 表達式的 C# 程序,以確定清單中是否存在數字:
代碼:
using System; using System.Collections.Generic; //a namespace called program is defined namespace program { //a class called check is defined class check { //main method is called static void Main(string[] args) { //a new list of type integer is created List<int> mylist = new List<int>(); //integers are added to the list using add() method mylist.Add(10); mylist.Add(20); mylist.Add(30); //a lambda expression and find method is used to determine if a number is present in the list int found = mylist.Find(r => r == 20); if(found==0) { Console.WriteLine("The number is present in the list"); } else { Console.WriteLine("The number is not present in the list"); } //a lambda expression and find method is used to determine if a number is present in the list found = mylist.Find(r => r == 40); if(found==0) { Console.WriteLine("The number is present in the list"); } else { Console.WriteLine("The number is not present in the list"); } } } }
輸出:
在上面的程式中,定義了一個名為program的命名空間。然後定義一個名為check的類別。然後呼叫main方法。然後建立一個新的整數類型清單。然後使用 Add() 方法將整數加入到列表中。然後使用 lambda 表達式和 Find() 方法來確定列表中是否存在數字。
Delegate(parameter_list) { //Block of code };
在程式中示範匿名方法的 C# 程式:
代碼:
using System; //a class called program is defined class program { //a delegate is created by using delegate keyword public delegate void subject(string favsubject); // Main method is called static public void Main() { // a parameter is passed to the anonymous method using delegate keyword subject sub = delegate(string favsubject) { Console.WriteLine("{0} is my favourite subject", favsubject); }; sub("C#"); } }
輸出:
在上面的程式中,定義了一個類別程式。然後使用 delegate 關鍵字建立委託。然後呼叫main方法。然後使用 delegate 關鍵字將參數傳遞給匿名方法。
C# 程式示範程式中的匿名方法可以存取外部方法中定義的變數:
代碼:
using System; //a class called program is defined class program { //anonymous method is declared using delegate keyword public delegate void subject(string favsubject); // Main method is called static public void Main() { //a string variable is defined in the outside method from anonymous method string favsubject1 = "Coding_in_C#"; // a parameter is passed to the anonymous method using delegate keyword subject sub = delegate(string favsubject) { Console.WriteLine("{0} is my favourite subject", favsubject); Console.WriteLine("I also like {0}", favsubject1); }; sub("C#"); } }
輸出:
在上面的程式中,定義了一個名為program的類別。然後使用 delegate 關鍵字建立委託。然後呼叫main方法。然後定義一個字串變量,它是匿名方法的外部方法。然後使用 delegate 關鍵字將參數傳遞給匿名方法。匿名方法也可以存取匿名方法以外的變數。
以上是C# 匿名函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!