C# dasturlash tili va .NET platformasi bo‘yicha kirish

1) C# dasturlash tili haqida umumiy ma’lumot

C# (si-sharp deb o‘qiladi) hozirgi kunda IT sohasidagi eng kuchli, tez rivojlanayotgan va talab yuqori bo‘lgan dasturlash tillaridan biridir. Ushbu tilda kichik ish stoli dasturlaridan tortib, har kuni millionlab foydalanuvchilarga xizmat ko‘rsatadigan yirik veb-portallar va veb-xizmatlargacha bo‘lgan turli xil dasturlar yoziladi.

C# endi yangi til emas, u .NET platformasi bilan birgalikda katta yo‘lni bosib o‘tdi. Birinchi versiyasi 2002 yil fevral oyida Microsoft Visual Studio .NET bilan chiqdi. Hozirgi kunda eng so‘nggi versiyasi C# 13 bo‘lib, u 2024 yil 12 noyabrda .NET 9 bilan birga chiqarildi.

C# sintaksisi C-ga o‘xshash bo‘lib, C++ va Java tillariga juda yaqin. Agar siz ushbu tillardan birini bilsangiz, C# ni o‘rganish siz uchun ancha oson bo‘ladi. C# ob’ektga yo‘naltirilgan dasturlash (OOP) tilidir va bu jihatdan Java va C++ dan ko‘p narsalarni o‘zlashtirgan. Masalan, u polimorfizm, merosxo‘rlik, operatorlarni qayta yuklash va statik tiplashni qo‘llab-quvvatlaydi. Ob’ektga yo‘naltirilgan yondashuv yordamida katta, lekin moslashuvchan, kengaytiriladigan va oson boshqariladigan dasturlarni yaratish mumkin. C# har bir yangi versiyada yangi va qiziqarli funksiyalar bilan boyib boradi.

2) .NET platformasining roli

C# haqida gapirganda, ko‘pincha .NET platformasi texnologiyalari (Windows Forms, WPF, ASP.NET, .NET MAUI) nazarda tutiladi. Shu bilan birga, .NET haqida gapirganda, ko‘pincha C# tiliga ishora qilinadi. Ammo bu ikki tushunchani bir xil deb hisoblamaslik kerak. C# maxsus .NET freymvorki uchun yaratilgan bo‘lsa-da, .NET tushunchasi undan kengroqdir.

Bill Geyts bir vaqtlar .NET platformasi Microsoftning eng yaxshi ijodi ekanligini aytgan edi. Ehtimol, u haq edi. .NET dasturlarni yaratish uchun kuchli platforma bo‘lib, uning asosiy xususiyatlarini quyidagicha sanab o‘tish mumkin:

Bir nechta tillarni qo‘llab-quvvatlash

.NET platformasining asosi umumiy til muhiti (Common Language Runtime, CLR) bo‘lib, u tufayli .NET bir nechta dasturlash tillarini qo‘llab-quvvatlaydi. C# dan tashqari, VB.NET, C++, F# va boshqa tillar, masalan, Delphi.NET kabi .NET ga moslashtirilgan tillar ham mavjud. Ushbu tillarda yozilgan kod kompilyatsiya jarayonida umumiy oraliq tilga (Common Intermediate Language, CIL) aylantiriladi, bu .NET platformasi uchun o‘ziga xos “assemblerdir”. Shu sababli, ma’lum shartlar ostida dasturning turli modullarini turli tillarda yozish mumkin.

Krossplatformalilik

.NET platformasi (ma’lum cheklovlar bilan) ko‘chma platformadir. Hozirgi eng so‘nggi versiyasi — .NET 9 — Windows, macOS, Linux kabi zamonaviy operatsion tizimlarning aksariyatida qo‘llab-quvvatlanadi. .NET platformasidagi turli texnologiyalar yordamida C# da Windows, macOS, Linux, Android, iOS va hatto Tizen platformalari uchun dasturlar ishlab chiqish mumkin.

Kuchli sinflar kutubxonasi

.NET barcha qo‘llab-quvvatlanadigan tillar uchun umumiy sinflar kutubxonasini taqdim etadi. C# da qanday dastur yozayotganingizdan qat’i nazar — matn muharriri, chat yoki murakkab veb-sayt — siz .NET sinflar kutubxonasidan foydalanasiz.

Texnologiyalar xilma-xilligi

CLR va asosiy sinflar kutubxonasi turli texnologiyalar stackining asosidir. Ushbu texnologiyalar dasturchilar tomonidan turli dasturlar yaratishda ishlatiladi. Masalan:

  • Ma’lumotlar bazasi bilan ishlash uchun: ADO.NET va Entity Framework Core.

  • Boy grafik interfeysli dasturlar uchun: WPF va WinUI.

  • Oddiyroq grafik dasturlar uchun: Windows Forms.

  • Krossplatformali mobil va ish stoli dasturlari uchun: Xamarin/.NET MAUI.

  • Veb-sayt va veb-ilovalar uchun: ASP.NET.

Bunga qo‘shimcha ravishda, Blazor freymvorki tobora ommalashmoqda. Bu .NET ustida ishlaydigan freymvork bo‘lib, server va mijoz tomonida veb-ilovalar yaratish imkonini beradi. Kelajakda u mobil va ehtimol ish stoli dasturlarni ham qo‘llab-quvvatlashi kutilmoqda.

Yuqori unumdorlik

Bir qator testlarga ko‘ra, .NET da yozilgan veb-ilovalar ko‘plab sohalarda boshqa texnologiyalar yordamida yaratilgan ilovalardan ancha ustun turadi. Umuman olganda, .NET dasturlari yuqori unumdorlik bilan ajralib turadi.

Avtomatik axlat yig‘ish (Garbage Collection)

C# va .NET ning muhim xususiyatlaridan biri bu avtomatik axlat yig‘ishdir. Bu xotirani boshqarish jarayonini soddalashtiradi va C++ dan farqli o‘laroq, dasturchiga xotirani qo‘lda tozalash haqida qayg‘urish shart emas. CLR o‘zi axlat yig‘uvchisini chaqiradi va keraksiz xotirani tozalaydi.

.NET Framework va .NET 9 o‘rtasidagi farq

.NET platformasi uzoq vaqt davomida asosan Windows uchun mo‘ljallangan .NET Framework sifatida rivojlandi. Uning so‘nggi versiyasi — .NET Framework 4.8 — 2019 yilda chiqdi va hozirda u endi rivojlantirilmaydi.

2014 yildan boshlab Microsoft krossplatformali yangi platforma — .NET Core ni ishlab chiqa boshladi. Bu platforma .NET Frameworkning barcha imkoniyatlarini o‘z ichiga olib, yangi funksiyalarni qo‘shdi. Keyinchalik .NET Core 1, .NET Core 2, .NET Core 3, .NET 5 va boshqa versiyalar chiqdi. Hozirgi kunda eng so‘nggi versiya .NET 9 hisoblanadi. Shuning uchun .NET Framework (asosan Windows uchun) va krossplatformali .NET 9 ni farqlash muhimdir. Ushbu qo‘llanmada biz C# 13 va .NET 9 ga e’tibor qaratamiz, chunki bu eng dolzarb platformadir.

4) Boshqariladigan va boshqarilmaydigan kod

C# da yozilgan dasturlar ko‘pincha boshqariladigan kod (managed code) deb ataladi. Bu nimani anglatadi? Bu shuni anglatadiki, dastur .NET platformasida yaratilgan va CLR tomonidan boshqariladi. CLR dasturni yuklaydi va kerak bo‘lganda xotirani tozalaydi.

Boshqa tomondan, masalan, C++ da yozilgan dasturlar boshqarilmaydigan kod (unmanaged code) hisoblanadi, chunki ular CIL ga emas, to‘g‘ridan-to‘g‘ri mashina kodiga kompilyatsiya qilinadi va .NET tomonidan boshqarilmaydi. Shu bilan birga, .NET boshqarilmaydigan kod bilan o‘zaro ishlash imkoniyatlarini taqdim etadi.

5) JIT-kompilyatsiya

C# da yozilgan kod .exe yoki .dll kengaymali dastur yoki yig‘malar sifatida CIL tiliga kompilyatsiya qilinadi. Dastur ishga tushirilganda JIT-kompilyatsiya (Just-In-Time) jarayoni amalga oshiriladi, ya’ni CIL kodi mashina kodiga aylantiriladi va ishga tushiriladi. Dastur katta bo‘lsa va ko‘p ko‘rsatmalarni o‘z ichiga olsa, faqat hozirda ishlatilayotgan kod qismi kompilyatsiya qilinadi. Agar boshqa kod qismiga murojaat qilinsa, u ham kompilyatsiya qilinadi. Sklangan kod dastur tugaguniga qadar saqlanadi, bu esa unumdorlikni oshiradi.

6) Birinchi C# dasturini yaratish

Endi C# va .NET haqida asosiy ma’lumotlarni bilganimizdan so‘ng, birinchi oddiy dastur yozamiz. Buning uchun Visual Studio 2022 yoki Visual Studio Code dan foydalanishingiz mumkin. Quyida Visual Studio 2022 da dastur yaratish jarayoni ko‘rsatiladi.

Dastur muhitini sozlash

  1. Visual Studio 2022 ni o‘rnating (Community versiyasi bepul).

  2. O‘rnatishda “.NET desktop development” va “.NET cross-platform development” komponentlarini tanlang.

  3. .NET 9 SDK ni o‘rnating (Visual Studio bilan birga keladi yoki alohida yuklab olish mumkin).

Birinchi dastur kodi

  1. Visual Studio ni oching va “Create a new project” ni tanlang.

  2. “Console App” shablonini tanlang, loyiha nomini masalan, HelloWorld deb qo‘ying va .NET 9 ni tanlang.

  3. Quyidagi kod avtomatik yaratiladi

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

Kod tushuntirishi

  • using System;: .NET ning asosiy kutubxonasini ulaydi, bu yerda Console sinfi mavjud.

  • namespace HelloWorld: Kodni mantiqiy guruhlash uchun nom maydoni.

  • class Program: Dasturning asosiy sinfi.

  • static void Main(string[] args): Dasturning kirish nuqtasi, bu yerda dastur ishga tushadi.

  • Console.WriteLine("Hello, World!");: Konsolga “Hello, World!” matnini chiqaradi.

Dasturni ishga tushirish

  • Visual Studio da F5 tugmasini bosing yoki “Run” ni tanlang.

  • Konsolda quyidagi natija chiqadi:

Hello, World!

7) C# 13 ning yangi xususiyatlari

C# 13 .NET 9 bilan birga chiqdi va bir qator yangi imkoniyatlarni taqdim etadi. Quyida asosiy yangiliklardan ba’zilari:

  1. Yaxshilangan pattern matching: switch operatori va is sharti yanada moslashuvchan bo‘ldi.

  2. Primary constructors kengaytirilishi: Sinflarni e’lon qilish yanada soddalashtirildi.

  3. Ref readonly parametrlari: Xotirani samarali boshqarish uchun yangi imkoniyatlar.

  4. Atsiz turlar va kengaytmalar:

var person = new { Name = "Ali", Age = 25 }; // Anonymous type
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
  1. Partial properties:

public partial class Person
{
    public partial string Name { get; set; }
}

8) Amaliy misollar

Oddiy kalkulyator dasturi

using System;

namespace Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Birinchi sonni kiriting: ");
            double a = double.Parse(Console.ReadLine());

            double.Write("Ikkinchi sonni kiriting: ");
            double b = double.Parse();

            Console.Write("Amalni tanlang (+, -, *, /): ");
            string operation = Console.ReadLine();

            switch (operation)
            {
                case "+":
                    Console.WriteLine($"Natija: {a + b}");
                    break;
                case "-":
                    Console.WriteLine($"Natija: {a - b}");
                    break;

                case "*":
                    Console.WriteLine($"Natija: {a * b}");
                    break;
                case "/":
                    if (b != 0)
                        Console.WriteLine($"Natija: {a / b}");
                    else
                        Console.WriteLine("Eolishga bo‘lmaydi!");
                    break;
                default:
                    Console.WriteLine("Noto‘g‘ri amal!");
                    break;
            }
        }
    }
}

Fayl bilan ishlash

using System;
using System.IO;

namespace FileHandling
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = "example.txt";
            // Faylga yozish
            File.WriteAllText(path, "Bu mening birinchi faylim!");

            // Fayldan o‘qish
            string content = File.ReadAllText(path);
            Console.WriteLine($"Fayl mazmuni: {content}");
        }
    }
}

Ko‘p beriladigan savollar (FAQ)

Savol ?

C# va .NET o‘rtasidagi farq nima ?

Javob: C# — bu dasturlash tili, .NET esa dasturlarni yaratish va ishlatish uchun platforma. C# .NET uchun maxsus yaratilgan, lekin .NET boshqa tillarni ham qo‘llab-quvvatlaydi.

Savol ?

C# ni o‘rganish uchun qanday bilim kerak ?

Javob: Agar C++, Java yoki boshqa C-ga o‘xshash tillarni bilsangiz, C# ni o‘rganish osonroq bo‘ladi. Umumiy dasturlash mantig‘ini bilish yetarli.

Savol ?

.NET 9 qaysi platformalarda ishlaydi ?

Javob: .NET 9 Windows, macOS, Linux, Android, iOS va Tizen kabi ko‘plab platformalarda qo‘llab-quvvatlanadi.

Xulosa va tavsiyalar

  • C# kuchli, moslashuvchan va zamonaviy dasturlash tili bo‘lib, turli loyihalar uchun mos keladi.

  • .NET 9 krossplatformali dasturlar yaratish uchun eng dolzarb platformadir.

  • Visual Studio yoki Visual Studio Code dan foydalanib, dasturlashni boshlang.

  • .NET ning boy kutubxonasi va texnologiyalaridan foydalanib, har qanday turdagi dasturlarni yarating.

  • Doimiy ravishda amaliyot qiling va C# ning yangi versiyalaridagi imkoniyatlarni o‘rganing.

Last updated

Was this helpful?