Sejenis fungsi dalam C# yang tidak mempunyai nama dipanggil fungsi tanpa nama yang juga boleh dinyatakan sebagai fungsi tanpa nama. Fungsi tanpa nama terdiri daripada dua jenis dalam C# iaitu ungkapan Lambda dalam C# dan kaedah Tanpa Nama dalam C# di mana fungsi tanpa nama yang digunakan untuk membuat perwakilan dipanggil ungkapan Lambda dalam C# menggunakan fungsi tempatan yang boleh dibuat dan boleh dihantar sebagai hujah dan pertanyaan. LINQ juga boleh ditulis dengan bantuan ungkapan Lambda. Kefungsian yang sama disediakan oleh kaedah Tanpa Nama juga kecuali ia tidak membenarkan anda menggunakan senarai parameter.
Terdapat dua jenis fungsi tanpa nama dalam C#. Mereka ialah:
(input-parameters) => expression
Atur cara C# untuk menunjukkan ungkapan Lambda dalam atur cara untuk mencari kuasa dua nombor:
Kod:
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); } } }
Output:
Dalam program di atas, ruang nama yang dipanggil program ditakrifkan. Kemudian kelas yang dipanggil cek ditakrifkan. Kemudian kaedah utama dipanggil. Kemudian ungkapan lambda ditakrifkan untuk mencari kuasa dua nombor. Kuasa dua nombor yang ditemui menggunakan ungkapan lambda dipaparkan.
Atur cara C# untuk menunjukkan ungkapan Lambda dalam atur cara untuk menentukan sama ada nombor terdapat dalam senarai atau tidak:
Kod:
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"); } } } }
Output:
Dalam program di atas, ruang nama yang dipanggil program ditakrifkan. Kemudian kelas yang dipanggil cek ditakrifkan. Kemudian kaedah utama dipanggil. Kemudian senarai jenis integer baharu dicipta. Kemudian integer ditambahkan pada senarai menggunakan kaedah Add(). Kemudian ungkapan lambda bersama-sama kaedah Find() digunakan untuk menentukan sama ada nombor terdapat dalam senarai atau tidak.
Delegate(parameter_list) { //Block of code };
Atur cara C# untuk menunjukkan kaedah tanpa nama dalam atur cara:
Kod:
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#"); } }
Output:
Dalam program di atas, program kelas ditakrifkan. Kemudian perwakilan dibuat dengan menggunakan kata kunci perwakilan. Kemudian kaedah utama dipanggil. Kemudian parameter dihantar ke kaedah tanpa nama menggunakan kata kunci perwakilan.
Atur cara C# untuk menunjukkan kaedah tanpa nama dalam program yang boleh mengakses pembolehubah yang ditakrifkan dalam kaedah luar:
Kod:
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#"); } }
Output:
Dalam program di atas, kelas yang dipanggil program ditakrifkan. Kemudian perwakilan dibuat menggunakan kata kunci perwakilan. Kemudian kaedah utama dipanggil. Kemudian pembolehubah rentetan ditakrifkan iaitu kaedah luar daripada kaedah tanpa nama. Kemudian parameter dihantar ke kaedah tanpa nama menggunakan kata kunci perwakilan. Kaedah tanpa nama juga mengakses pembolehubah di luar kaedah tanpa nama.
Atas ialah kandungan terperinci C# Fungsi Tanpa Nama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!