|
using System;
namespace
|
bet | 6/9 | Sana | 13.02.2024 | Hajmi | 1 Mb. | | #156042 |
Bog'liq 37-mavzuusing System;
namespace Lambda
{
delegate string StrMod(string s);
class UseStatementLambdas
{
static void Main()
{
//Bo'shliqlarni defis bilan almashtirish.
StrMod ReplaceSpaces = s => {
Console.WriteLine("Bo'shliqlarni defis bilan almashtirish.");
return s.Replace(' ', '-');
};
// Bo'shliqlarni olib tashlash.
StrMod RemoveSpaces = s => {
string temp ="";
int i;
Console.WriteLine("Bo'shliqlarni o'chirish.");
for(i=0; i < s.Length; i++)
if (s[i] != ' ') temp += s[i];
return temp;
};
// Satrni teskari tartibda yozish
StrMod Reverse = s => {
string temp = "";
int i, j;
Console.WriteLine("Satrni teskari tartibda yozish:");
for(j=0, i=s.Length-1; i >= 0; i--, j++)
temp += s [i];
return temp;
};
string str;
// Delegatlardan foydalanib lambda iboralariga kiring.
StrMod strOp = ReplaceSpaces;
str = strOp("Farg'ona davlat universiteti.");
Console.WriteLine("Natija satri: " + str);
Console.WriteLine();
strOp = RemoveSpaces;
str = strOp("Farg'ona davlat universiteti.");
Console.WriteLine("Natija satri: " + str);
Console.WriteLine();
strOp = Reverse;
str = strOp("Farg'ona davlat universiteti.");
Console.WriteLine("Natija satri: " + str);
Console.ReadKey();
}
}
}
Dastur natijasi:
Odatiy metodni vazifa sifatida ishlatishdan tashqari, yana bir oqilona yondashuv mavjud: lambda ifodasini alohida hal qilingan muammo sifatida belgilash!
Eslatib o'tamiz, lambda ifodalari anonim funksiyalarning maxsus shakli hisoblanadi. Shuning uchun ularni alohida vazifalar sifatida bajarish mumkin.
Lambda ifodalari, ayniqsa metodning yagona maqsadi bir martalik vazifani hal qilishda foydalidir. Lambda ifodalari alohida vazifa bo'lishi yoki boshqa metodlarga murojaat qilishi mumkin. Lambda ifodasini vazifa sifatida ishlatish chiroyli ko’rinish oladi.
Quyidagi dasturda lambda ifodasini vazifa sifatida ishlatilishini namoyish etadi.
|
| |