|
Kompyuter tizimlari kafedrasi
|
bet | 81/154 | Sana | 08.01.2024 | Hajmi | 5,29 Mb. | | #131939 |
Bog'liq Majmuausing System;
namespace Funksiya
{
static class MyStaticParams
{
public static void SomeMethod()
{
//Kod
}
}
}
Statik sinflar odatda, butun dastur uchun mavjud bo‘lishi kerak bo‘lgan, ba’zi yordamchi o‘zgaruvchilar yoki metodlarni birlashtiradi. Boshqa dasturlash tillarida bunday o‘zgaruvchilar global deb nomlangan va dastur davomida ko‘rinib turgan. Sof obyektga yo‘naltirilgan dasturlash tilida sinfdan tashqarida metodlar va o‘zgaruvchilar bo‘lishi mumkin emas.
Sinfning statik a’zolari obyektga emas, sinfga tegishli, shuning uchun ularga sinf nomi orqali murojaat qilish kerak. Statik bo‘lmagan ma’lumotlar obyektga nisbatan, sinfdan obyektni ishga tushirish va obyekt o‘zgaruvchisi orqali obyekt a’zolariga kirish kerak. Sinfning statik a’zosini chaqirish uchun quyidagilardan birini yozish kerak:
Sinf_nomi.O‘zgaruvchi
yoki
Sinf_nomi.Metod_nomi()
Masalan, yuqorida bayon qilgan statik metod shunday deyiladi:
MyStaticParams.SomeMethod();
Nuqtaning chap tomonida obyekt o‘zgaruvchisi emas, balki sinf nomi joylashgan.
Statik o‘zgaruvchilar haqida eslatma. Ularning qiymati birinchi murojaatda ishga tushiriladi. Bu shuni anglatadiki, agar dasturda 100 ta statik o‘zgaruvchi e’lon qilingan bo‘lsa, bu ularning barchasi dastur boshida darhol ishga tushiriladi va ularning barchasi uchun xotira ajratiladi degani emas. Agar shunday bo‘lsa, dastur juda ko‘p vaqtni oladi va u juda ko‘p xotirani egallaydi. Aslida, xotira kerak bo‘lganda ajratiladi. Statik o‘zgaruvchiga birinchi marta kirishda uning uchun xotiradan joy ajratiladi va unga qiymat kiritiladi.
Garchi statik metodlar va o‘zgaruvchilar foydalanish nuqtayi nazaridan ancha tejamkor va ba’zan qulay bo‘lsa-da, ulardan faqat haqiqatan ham kerak bo‘lganda foydalanish zarur.
Metoddan chiqish
Metoddan chiqish ikki holatda bo‘lishi mumkin. Birinchisi, yuqoridagi dasturdagi metodning tanasini yopuvchi figurali qavsga kelganda. Ikkinchisi, return operatori bajarilganda. return operatorining ikkita shakli mavjud: biri void tipidagi metodlar uchun, ya'ni qiymat qaytarmaydigan metodlar, ikkinchisi esa ma'lum qiymatlarni qaytaradigan metodlar uchun.
void turidagi metodni birdan tugatish uchun return operatorining quyidagi shaklini ishlatish kifoya.
return;
Ushbu operator bajarilganda, boshqaruv dasturni chaqirish qismiga qaytadi va metod tanasidagi qolgan kodlar o‘tkazib yuboriladi. Misol sifatida quyidagi metodni ko‘rib chiqamiz.
public void MyMeth()
{
int i;
for (i = 0; i < 10; i++)
{
if (i == 5) return; // 5-qadamda metoddan chiqiladi
Console.WriteLine();
}
}
Bu misolda for siklining 5 ta qadami bajariladi, chunki i o‘zgaruvchisi 5 qiymatga teng bo‘lganda metoddan chiqiladi.
Metodda bir nechta return operatorlariga ruxsat beriladi, ya’ni ikki yoki undan ortiq qaytarish variantlari mavjud bo‘lsa. Misol uchun:
public void MyMeth()
{
//...
if (done) return;
// ...
if (error) return;
}
Ushbu misolda metoddan chiqish ikki holatda sodir bo‘ladi: agar metodda done sharti bajarilsa yoki error sharti bajarilsa. Lekin ushbu holatda ehtiyotkorlik bilan foydalanish zarur. Metoddan juda ko‘p chiqish nuqtalari tufayli kodning strukturasi buzilishi mumkin.
Shunday qilib, void turidagi metoddan chiqish ikki holatda sodir bo‘lishi mumkin: yopilish figurali qavsga yetganda yoki return operatori bajarilganda.
|
| |