C# Fungsi Tanpa Nama

PHPz
PHPzasal
2024-09-03 15:14:47500semak imbas

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.

Jenis Fungsi Tanpa Nama dalam C#

Terdapat dua jenis fungsi tanpa nama dalam C#. Mereka ialah:

1. Ungkapan Lambda

  • Perwakilan boleh dibuat dengan menggunakan jenis fungsi tanpa nama yang dipanggil Lambda Expressions.
  • Fungsi setempat boleh dibuat menggunakan ungkapan Lambda yang boleh dihantar sebagai hujah.
  • Pertanyaan LINQ boleh ditulis dengan bantuan ungkapan Lambda.
  • Sintaks ungkapan lambda dalam C# adalah seperti berikut:
(input-parameters) => expression
Contoh #1

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:

C# Fungsi Tanpa Nama

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.

Contoh #2

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:

C# Fungsi Tanpa Nama

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.

2. Kaedah Tanpa Nama

  • Kaedah yang tidak mempunyai nama dipanggil kaedah tanpa nama dalam C#.
  • Kaedah tanpa nama telah diperkenalkan dalam C# versi 2.0.
  • Kami menggunakan kaedah tanpa nama apabila kaedah sebaris hendak dibuat dan parameter juga mesti dihantar kepada kaedah yang serupa dengan cara kami menghantar parameter kepada mana-mana kaedah lain.
  • Perwakilan kata kunci digunakan untuk mentakrifkan kaedah tanpa nama dan kaedah ini boleh diberikan kepada pembolehubah jenis perwakilan.
  • Sintaks kaedah Anonymous dalam C# adalah seperti berikut:
Delegate(parameter_list)
{
//Block of code
};
Contoh #1

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:

C# Fungsi Tanpa Nama

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.

Contoh #2

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:

C# Fungsi Tanpa Nama

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Fungsi Rekursif dalam C#Artikel seterusnya:Fungsi Rekursif dalam C#