Respublikasi oliy va o’rta maxsus ta’lim vazirligi guliston davlat universiteti amaliy matematika va
Lambda ifodalarini blokirovka qiling
Download 1.4 Mb.
|
portal.guldu.uz-Дастурлаш технологиялари
Lambda ifodalarini blokirovka qilingLambda 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) { заново логин }
// Рекурсия на этот же метод, чтобы ввести 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
следующий раз получится :)"); return; }; cp(resCaptha, resCode); } else Console.WriteLine("Регистрация провалилась. Пароли не совпадают"); Console.ReadLine(); } } } Download 1.4 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling