Biz ko’pincha metodlarda cheklangan miqdordagi argumentlardan foydalanamiz . Agar dasturdagi metodda argumentlar soni kopaysa kodning korinishini xiralashadi yani xunuklashadi. params kalit so’zi orqali biz cheksiz argumentlarni massiv korinishida kirgazishimiz va kodni ancha ixchamlashtirishimiz mumkin. params Parametrli metodlarni chaqirganimizda , biz quyidagilarni kiritishimiz mumkin:
• Massiv elementlari turiga oid argumentlarning vergul bilan ajratilgan ro'yxati:
• Hech qanday argumentsiz. Hech qanday argument yubormasak, params ro'yxati uzunligi nolga teng boladi.
Sum();
params kalit so’zi dasturchi metodda foydalaniladigan parametrlar soni haqida oldindan ma'lumotga ega bo'lmagan hollarda foydali bo'ladi. Metod konstruktorida params kalit sozidan faqat bir marta foydalanishimiz mumkin. params ga tegishli argumentdan keyin qoshimcha argument berish mumkin emas.
params kalit so’zidan foydalanishga oddiy misol:
usingSystem;namespacedot_net_uz{classProgram { // params parametrni o'z ichiga olgan metodpublicstaticintSum(paramsint[] sonlarRoyxati) {int sum =0;foreach (int i in sonlarRoyxati) { sum += i; }return sum; }staticvoidMain(string[] args) { //Sum metodini chaqiramiz.int [] yigindi =Sum(19,9,7,17,39,47);Console.WriteLine($"yigindi : {yigindi}");Console.ReadKey(); } }}
Output:
yigindi : 138
yigindi : 138
0
Sizda "params kalit so'zidan foydalanmasdan ham metodlarda massivdan foydalanish mumkinku, params ni nima keragi bor?" degan savol tug'ilishi mumkin. Javob shunday: params kalit so'zi metoddan foydalanishni ancha qulaylashtiradi:
usingSystem;namespacedot_net_uz{classProgram { // params parametrni o'z ichiga olgan metodpublicstaticintSum(paramsint[] sonlarRoyxati) {int sum =0;foreach (int i in sonlarRoyxati) { sum += i; }return sum; }staticvoidMain(string[] args) {int [] a={19,9,7,17,39,47};int yigindi =Sum(a); // params ishlatmasdan ham metodni bu usulda chaqirish mumkin ediConsole.WriteLine($"yigindi : {yigindi}"); // paramsdan foydalangandagina metodni shunday chaqirish mumkin:Console.WriteLine($"yigindi : {Sum(19,9,7,17,39,47)}"); // Agar paramsdan foydalanmagan bo'lsangiz kodning bu qismida xatolik yuzaga keladi, // paramsdan foydalansangiz metodni shu holatda ham chaqirish mumkinConsole.WriteLine(Sum());Console.ReadKey(); } }}
Object turidan va paramsdan foydalanish metodni har qanday turdagi va har qanday miqdordagi qabul qila olishiga imkon beradi:
usingSystem;namespacedot_net_uz{classProgram { // params parametrni o'z ichiga olgan metod // object turidagi parametrlardan foydalanilgan funksiyapublicstaticvoidPrint(paramsobject[] royxat) {for (int i =0; i <royxat.Length; i++) { // Natijalarni chop etishConsole.WriteLine(royxat[i]); } }staticvoidMain(string[] args) {object[] obj =newobject[] { "hamroliyev",'a',19,9,12.8 };Console.WriteLine("1-usul:"); //Print metodini chaqiramiz.Print(obj);Console.WriteLine();Console.WriteLine("2-usul:"); //Print metodini chaqiramiz.Print(19,"dot-net",20,"Hamroliyev");Console.WriteLine("3-usul:");Print();Console.ReadKey(); } }}