Respublikasi oliy va o’rta maxsus ta’lim vazirligi guliston davlat universiteti amaliy matematika va


Lambda ifodalarini blokirovka qiling


Download 1.4 Mb.
bet32/57
Sana26.06.2023
Hajmi1.4 Mb.
#1655865
1   ...   28   29   30   31   32   33   34   35   ...   57
Bog'liq
portal.guldu.uz-Дастурлаш технологиялари

Lambda ifodalarini blokirovka qiling


Lambda ifodasining ikkinchi turi blokli lambda ifodasidir. Bunday lambda ifodasi turli xil operatsiyalarni bajarish uchun kengaytirilgan imkoniyatlar bilan tavsiflanadi, chunki uning tanasida bir nechta operatorlar ko'rsatilishi mumkin. Masalan, bloklangan lambda ifodasida siz ko'chadan foydalanishingiz mumkin va agar iboralar, o'zgaruvchilarni e'lon qilsangiz va hk. Blok lambda ifodasini yaratish qiyin emas. Buning uchun ifoda korpusini jingalak qavs ichiga solib qo'yish kifoya. Bir nechta operatorlardan foydalanish qobiliyatidan tashqari, blok lambda ifodasining qolgan qismi hozirda muhokama qilingan bitta lambda ifodasidan deyarli farq qilmaydi.

Ro'yxatdan o'tish shakliga captcha qo'shib, avvalgi misolni o'zgartiraylik:


using System;

namespace ConsoleApplication1


{
// Создадим несколько делегатов имитирующих
// простейшую форму регистрации delegate int LengthLogin(string s);
delegate bool BoolPassword(string s1, string s2); delegate void Captha(string s1, string s2);

class Program


{
private static void SetLogin()
{
Console.Write("Введите логин: "); string login = Console.ReadLine();

// Используем лямбда-выражение


LengthLogin lengthLoginDelegate = s => s.Length;

int lengthLogin = lengthLoginDelegate(login); if (lengthLogin > 25)


{

заново логин

}
}
Console.WriteLine("Слишком длинное имя\n");


// Рекурсия на этот же метод, чтобы ввести SetLogin();



static void Main()


{
SetLogin();

Console.Write("Введите пароль: "); string password1 = Console.ReadLine(); Console.Write("Повторите пароль: "); string password2 = Console.ReadLine();


// Используем лямбда выражение BoolPassword bp = (s1, s2) => s1 == s2;


if (bp(password1, password2))


{

resCaptha);
Random ran = new Random(); string resCaptha = "";
for (int i = 0; i < 10; i++)
resCaptha += (char)ran.Next(0, 100); Console.WriteLine("Введите код xD: " +

string resCode = Console.ReadLine();


// Реализуем блочное лямбда-выражение Captha cp = (s1, s2) =>


{

if (s1 == s2)

удалась!");


Console.WriteLine("Регистрация

else
Console.WriteLine("Не переживай, в



следующий раз получится :)");
return;
};
cp(resCaptha, resCode);
}
else
Console.WriteLine("Регистрация провалилась.
Пароли не совпадают");

Console.ReadLine();


}
}
}




Download 1.4 Mb.

Do'stlaringiz bilan baham:
1   ...   28   29   30   31   32   33   34   35   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling