Anonim metod C# Anonim usul
Download 51.47 Kb.
|
Anonim metod
- Bu sahifa navigatsiya:
- mypet); }; p("Dog"); } } My favorite pet is: Dog
using System;
class GFG { public delegate void petanim(string pet); // Asosiy metod static public void Main() { // Bir parametrli anonim metod petanim p = delegate(string mypet) { Console.WriteLine("My favorite pet is: {0}", mypet); }; p("Dog"); } } My favorite pet is: Dog Bu usul shuningdek, inline delegate sifatida ham tanilgan. Ushbu usul yordamida siz alohida usullarni yozmasdan delegat ob'ektini yaratishingiz mumkin. Bu usul tashqi usulda mavjud o'zgaruvchiga kirishi mumkin. Bunday turdagi o'zgaruvchilar tashqi o'zgaruvchilar deb nomlanadi. Quyidagi misolda ko'rsatilganidek, fav tashqi o'zgaruvchidir. // anonim funksiyani kirish o’zgaruvchisi // tashqi usulda using System; class GFG { // delegate yaratish
// Main method static public void Main() { string fav = "Rabbit"; // Anonymous method with one parameter
// Accessing variable defined // outside the anonymous function Console.WriteLine("And I like {0} also.", fav); }; p("Dog"); } } My favorite pet is Dog. And I like Rabbit also. Bu usulni delegatni parametr sifatida qabul qiladigan boshqa usulga o'tkazishingiz mumkin. Quyidagi misolda ko'rsatilganidek: // C# program to illustrate how an // anonymous method passed as a parameter using System; public delegate void Show(string x); class GFG { // identity method with two parameters public static void identity(Show mypet, string color) { color = " Black" + color; mypet(color); } // Main method static public void Main() { // Here anonymous method pass as // a parameter in identity method identity(delegate(string color) { Console.WriteLine("The color"+ " of my dog is {0}", color); }, "White"); } } Anonim usullarda sizga parametrlar ro'yxatini olib tashlashga ruxsat beriladi, ya'ni siz anonim usulni delegatga aylantirishingiz mumkin. Anonim usul bloki anonim usuldagi parametrlar doirasini bildiradi. Anonim usulda goto, break yoki continue kabi o'tish iboralari mavjud emas. Anonim usul xavfli kodga kira olmaydi. Anonim usul tashqi doiraning kirish, ref va chiqish parametrlariga kira olmaydi. Is operatorining chap tomonida anonim usuldan foydalana olmaysiz. Hodisa ishlovchisi sifatida anonim usuldan ham foydalanishingiz mumkin. Misol: // C# program to illustrate how an // anonymous method use as a // event handler MyButton.Click += delegate(Object obj, EventArgs ev) { System.Windows.Forms.MessageBox.Show("Complete without error...!!"); } Nima uchun C# da anonim usuldan foydalanish kerak? Anonim usullar kod blokini delegat parametri sifatida o'tkazish texnikasini ta'minlaydi. Anonim usullar - bu nomsiz usullar, faqat tana. Anonim usulda qaytarish turini belgilashingiz shart emas; u usul tanasi ichidagi qaytish bayonotidan kelib chiqadi. Misol bilan C# da anonim nima? C# da anonim tip bizga nomni ko'rsatmasdan tur yaratish imkonini beradi. Masalan, var sub'ekti = new {Ism = "Matematika", Kod = 123}; Bu erda sub'ekt ikki xususiyatni o'z ichiga olgan anonim turdagi o'zgaruvchidir: Ism va Kod . Anonim usul nima? Anonim usul - bu identifikatorga nom bilan bog'lanmagan holda belgilangan yoki chaqiriladigan funksiya yoki pastki dastur. Anonim usullardan C# va PHP kabi ko'plab zamonaviy dasturlash tillari qo'llaniladi. Anonim usulni yozish Anonim usullar delegat kalit so'zi bilan delegat misolini yaratish bilan e'lon qilinadi. Masalan, delegat void NumberChanger(int n); ... NumberChanger nc = delegat (int x) { Console.WriteLine("Anonim usul: {0}", x); }; Kod bloki Console.WriteLine("Anonim usul: {0}", x); anonim usulning asosiy qismidir. Delegat anonim usullar bilan ham, nomli usullar bilan ham xuddi shu tarzda, ya'ni usul parametrlarini delegat ob'ektiga o'tkazish orqali chaqirilishi mumkin. Masalan, nc(10);
Quyidagi misol − tushunchasini ko'rsatadi Jonli demo tizimdan foydalanish; delegat void NumberChanger(int n); nom maydoni DelegateAppl { Class TestDelegate { statik int soni = 10; umumiy statik bekor AddNum(int p) { num += p; Console.WriteLine("Nomlangan usul: {0}", num); } umumiy statik bekor MultNum(int q) { num *= q; Console.WriteLine("Nomlangan usul: {0}", num); } umumiy statik int getNum() { raqamni qaytarish; } statik void Main(string[] args) { // anonim usul yordamida delegat misollarini yarating NumberChanger nc = delegat (int x) { Console.WriteLine("Anonim usul: {0}", x); }; //anonim usul yordamida delegatni chaqirish nc(10); //atlangan usullar yordamida delegatni instantsiyalash nc = yangi NumberChanger(AddNum); //ko'rsatilgan usullardan foydalangan holda delegatni chaqirish nc(5); //delegatni boshqa nomli usullar yordamida instantsiyalash nc = yangi NumberChanger (MultNum); //ko'rsatilgan usullardan foydalangan holda delegatni chaqirish nc(2); Console.ReadKey(); } } } Yuqoridagi kod kompilyatsiya qilinganda va bajarilganda, u quyidagi natijani beradi - Anonim usul: 10 Nomlangan usul: 15 Nomlangan usul: 30 Download 51.47 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling