1-Mavzu. Dasturlashda delegatlar, hodisalar, lyamda ifodalardan foydalanish. Saralash va izlash algoritmlari bilan tanishish
Download 0.92 Mb.
|
1-mavzu
- Bu sahifa navigatsiya:
- Bunday ko`rinishga keltirish uchun kerakli buyruq va algoritmlar bajariladi va dasturi tuziladi: using
- Button1Click
public static double Add(double x, double y) {return x+y;}
public static double Divisor(double x, double y) {return x-y;} public static double Multiple(double x, double y) {return x*y;} public static double Division(double x, double y) {return x/y;} } } Natija:
Delegatlar yordamida Satrlar bilan ishlashga doir misol. Bunda probellar o`rniga # belgisini qo`yish dasturini tuzamiz. Bunday ko`rinishga keltirish uchun kerakli buyruq va algoritmlar bajariladi va dasturi tuziladi: using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace Delegatlar { /// <summary> /// Description of MainForm. /// </summary> // Delegatni e'lon qilish: delegate string Satr(string s); public partial class MainForm : Form { public MainForm() { InitializeComponent(); } // Probellarni # belgisi bilan almashtirish. static string Probel(string s) { return s.Replace(' ', '#'); } void MainFormLoad(object sender, EventArgs e) { label1.Text="Bu yerda probel # belgisi bilan almashtiriladi."; label2.Text="Natija:"; button1.Text="OK"; } void Button1Click(object sender, EventArgs e) { Satr a = new Satr (Probel); textBox2.Text=a(textBox1.Text); } Natija: Lyamda ifodalar. Anonim metodlarning ahamiyati beqiyosligiga qaramay, ularning o’rnini yanada takomillashgan instrument lyamda ifoda egalladi. Umuman olganda, lyamda ifoda anonim metodning g’oyasini takomillashtiradi va ayni vaqtda anonim funksiyani yaratish uchun zarur hisoblanadi. Lambda ifoda mutlaqo yangi sintaksisga asoslangan va anonim metodga yanada samarali alternativa bo’lib xizmat qiladi. Boshqacha aytganda, lyambda ifoda - bu anonim funksiyani yaratishning yana bir usuli. Shu sabab ham lyambda ifoda delegatga o’zlashtirilishi mumkin. Lyambda ifoda o’ziga ekvivalent anonim metodga qaraganda samaraliroq deb hisoblanganligi sababli, aksariyat hollarda unga ustunlik berish tavsiya etiladi. Lyambda ifoda yakkalik va blokli lyambda ifodalardan iborat bo’ladi. Lmbda – ifodalari odatda delegatlar va voqealar bilan ishlash uchun ishlatiladi, chunki delegat lambda- ifodasini nazarda tutish mumkin. Lambda ifodalari asosan LINQ bilan ishlashda ishlatiladi, ular ko`pincha delgatlar va voqealar bilan birgalikda ishlatiladi. Lambda ifoda parametrlari => operatordan oldin ko`rsatilgan va amaldagi ifoda / bayonot / blok operatorining o`ng tomonida joylashgan bo`ladi: // ifoda (int x, string s)=>s.Length>x //ifoda
// bayonot (string x)=> { X+”Salom!”; Console.WriteLine(x); } Ushbu operator aniq metod yozmasdan , delegatlarni osongina aniqlash uchun ishlatilishi mumkin: Delegate void TestDelegate(string s); TestDelegate myDelegate=s=> Console.WriteLine(s+”alaykum!”); myDelegate(“Assalomu”); o`rniga void MyMethod(string s) { Console.WriteLine(s+”alaykum!”); } delegate void TestDelegate(string s); TestDelegate myDelegate= MyMethod; myDelegate(“Assalomu”); shu usulda aniqlash mumkin. Lambda ifodalari – bu no`malum usullarning kengaytmasi bo`lib, ular aniq kiritilmagan parametrlar va qiymatlarni qaytarishga imkon beradi. Ularning sintaksisi anonym usullarga qaraganda kamroq verbal bo`lib, funksional dasturlash uslubiga amal qiladi. Endi esa Lyamda ifodadan foydalanib, y = x2 - 8x - 9 funksiyaning qiymatini hisoblash dasturini tuzamiz. . delegate double Funksiya(double x); class Program
Download 0.92 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling