C# Method (Sinf/Class)

Sinflar ushbu kitobning barcha na’munaviy dasturlarida qo‘llanilgan. Obyektga yo’naltirilgan dasturlashgacha foydalanilgan sinf eng oddiy sinf bo‘lib, bu ularning ko‘p xossalaridan foydalanishga imkon bermaydi. Sinflarning asosiy qoidalarini ko‘rib chiqamiz. Sinf - bu obyekt shaklini belgilaydigan shablon. U ma’lumotlar va ushbu ma’lumotlarda ishlaydigan kodni belgilaydi. C# da sinfning nusxasi bo‘lgan obyektlarni qurish uchun sinf spetsifikatsiyasidan foydalanadi. Sinf mantiqiy abstraksiya hisoblanadi. Sinfning fizik ko‘rinishi operativ xotirada faqat shu sinf obyekti yaratilgandan keyingina paydo bo‘ladi.Sinfning umumiy shakli Sinf aniqlanganda, uning tarkibidagi ma’lumotlar, shuningdek, ushbu ma’lumotlarda ishlaydigan kod e’lon qilinadi. Eng oddiy sinflar faqat kodni yoki faqat ma’lumotlarni o‘z ichiga olishi mumkin bo‘lsa-da, ko‘pchilik haqiqiy sinflar ikkalasini ham o‘z ichiga oladi.Ma’lumotlar sinf tomonidan belgilangan a’zolarida, kod esa a’zo metodlarida mavjud. Sinflarning bir nechta a’zolari mavjud bo‘lib, metodlar, konstruktorlar, destruktorlar, indeksatorlar, hodisalar, operatorlar va xossalarnio‘z ichiga oladi. classkalit so‘zi bilan sinf yaratiladi. Quyida faqat o‘zgaruvchilar nusxasi va metodlarini o‘z ichiga olgan oddiy sinfning umumiy shakli keltirilgan.

class SinfNomi
{
   // O‘zgaruvchilar e’loni
   ruxsat_modifikatortur_nomi uzgaruvchi1;
   ruxsat_modifikatortur_nomi uzgaruvchi2;
   //...
   ruxsat_modifikatorturnomi uzgaruvchiN;
   // Metodlarni e’lon qilish.
   ruxsat_modifikatortur_nomi metod1(parametrlar)
   {
       // metod tanasi
   }
   ruxsat_modifikatorturnomi metod2(parametrlar)
   {
       // metod tanasi
   }
   // metod tanasi
} 

Har bir o‘zgaruvchi va metod e’lonidan oldin ruxsat modifikatori mavjud. Bu ma’lum bir sinf a’zosiga qanday kirishni ko‘rsatuvchi public modifikatori hisoblanadi. Sinf a’zolari sinf ichida private yoki public bo‘lishi mumkin. Ruxsat modifikatori ruxsat etilgan kirish turini belgilaydi. Ruxsat modifikatori ixtiyoriy, lekin yo‘q bo‘lsa, e’lon qilinayotgan a’zo sinf ichida private modifikatorini qabul qiladi. private a’zolardan faqat o‘z sinfining boshqa a’zolari foydalanishi mumkin. Yuqoridagi dasturda Main() metodidan tashqari barcha a’zolar public sifatida belgilangan. Bu shuni anglatadiki, ular boshqa barcha kod qismlarida, hatto sinfdan tashqarida aniqlanganlarda ham foydalanish mumkin. 

Sinf a’zosi e’lonida ruxsat modifikatorlaridan tashqari bir yoki bir nechta modifikatorlar ham ishlatilishi mumkin. Oldingi boblarda tuzilgan dasturlarda ishlatilgan sinflar faqat bitta metodni o‘z ichiga olgan: Main(). Lekin yuqorida ko‘rsatilgan sinfning umumiy shaklida Main() metodi ko‘rsatilmagan. Agar dastur shu sinfdan boshlangan bo‘lsa, bu metod sinfda ko‘rsatilishi kerak.

Endi sinfni ichida metod hosil qilishga doir misol ko’ramiz.

namespace UzbekDevs
{
   class Rect
   {
       public int a;
       public int b;
       public Rect(int x, int y)
       {
           a = x;
           b = y;
       }
       public int Yuza()
       {
           return a * b;
       }
   }
   internal class UseRect
   {
       static void Main(string[] args)
       {
           Rect myclass1 = new Rect(3, 4);
           Rect myclass2 = new Rect(5, 6);
           Console.WriteLine("myclass1 to'rtburchak:"+myclass1.Yuza());
           Console.WriteLine("myclass2 to'rtburchak:" + myclass2.Yuza());
           Console.ReadKey();
       }
   }
}

Dastur natijasi:

myclass1 to'rtburchak:12 myclass2 to'rtburchak:30