1-bo‘lim

C# bilan tanishuv

C# nima uchun yaratilgan, uni kim yozgan, "sharp" belgisi qayerdan kelgan, .NET nima va birinchi dastur qanday ishlaydi.

🕑 10 daqiqa o‘qish 📄 929 so‘z 👁 5 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Birinchi dastur
  2. C# ni kim yaratgan?
  3. Qisqacha tarix
  4. C# va .NET - ikki xil narsa
  5. C# qayerda ishlatiladi
  6. Tilning uchta xususiyati
  7. 1. Turlar qat'iy tekshiriladi
  8. 2. Xotira o'zi tozalanadi
  9. 3. Standart kutubxona juda katta
  10. Xulosa

C# (o'qilishi "si sharp") - Microsoft yaratgan dasturlash tili. Bugun unda Windows dasturlari, veb saytlar, Unity o'yinlari va mobil ilovalar yoziladi.

U C++ ning tezligi bilan Java ning qulayligini birlashtirish uchun o'ylab topilgan va yigirma yildan ortiq vaqt davomida doimiy rivojlanib kelmoqda.

Birinchi dastur #

CSHARP
Console.WriteLine("Salom, dunyo!");
Natija
Salom, dunyo!

Bittagina qator. Bu yuqori darajali ko'rsatmalar (top-level statements) deb ataladi va C# 9 dan beri mavjud.

Ilgari eng oddiy dastur ham shunday ko'rinardi:

CSHARP
using System;

namespace Salomlashuv
{
    class Dastur
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Salom, dunyo!");
        }
    }
}
Natija
Salom, dunyo!

Ikkalasi ham bir xil ishlaydi. Kompilyator birinchi variantni ko'rganda Main metodini o'zi yozib qo'yadi - siz uni yozmaysiz, xolos.

Nega eski shakl hali ham kerak

Yangi shakl qisqa, lekin eski shaklni tanish shart: internetdagi misollarning aksariyati, kitoblar va ish joyingizdagi loyihalar hali ham class va Main bilan yozilgan.

Bu darslikda qisqa shakldan foydalanamiz, lekin 9-bo'limda sinflarga o'tganimizda to'liq shakl qaytib keladi.

C# ni kim yaratgan? #

C#

Anders Hejlsberg (1960-)

C# ning bosh me'mori. Daniyalik dasturchi. C# dan oldin u Turbo Pascal ni yozgan - 1983-yilda bir o'zi. Keyin Delphi ning bosh me'mori bo'lgan.

1996-yilda Microsoft'ga o'tdi va 2000-yilda C# ni taqdim etdi. Keyinchalik u yana bir mashhur tilni yaratdi - TypeScript. Ya'ni bitta odam to'rt avlod dasturchilarining asboblarini yasagan.

"#" belgisi nimani anglatadi?

Bu musiqa belgisi - diez (♯). Musiqada diez notani yarim ton ko'taradi. Ya'ni "C sharp" - "C dan bir pog'ona yuqori" degani.

Ikkinchi o'qilishi ham bor: # belgisiga diqqat bilan qarasangiz, u to'rtta + belgisidan tuzilgandek ko'rinadi. Ya'ni C++ ++ - "C++ dan ham ikki qadam oldinga".

Klaviaturada haqiqiy diez belgisi bo'lmagani uchun oddiy panjara belgisi (#) ishlatiladi. Rasmiy nomi esa C Sharp deb yoziladi.

Qisqacha tarix #

C# ning rivojlanishi 2002 C# 1.0 faqat Windows 2005 C# 2 generiklar 2007 C# 3 LINQ, lambda 2012 C# 5 async/await 2016 .NET Core Linux va macOS 2020 .NET 5 birlashtirildi 2025 .NET 10 C# 14 Dastlabki sakkiz yil C# faqat Windows'da ishlagan. 2016-yilda .NET Core ochiq kodli va ko'p platformali bo'ldi - bu tilning taqdirini o'zgartirdi. Bugun C# dasturi Linux serverida ham, Android telefonda ham bir xil ishlaydi.
Eng muhim burilish - 2016-yilda ochiq kodli va ko'p platformali bo'lishi
VersiyaYilNima qo'shildi
C# 1.02002Tilning o'zi, .NET Framework bilan birga
C# 2.02005Generiklar, nullable turlar, iteratorlar
C# 3.02007LINQ, lambda ifodalar, var
C# 5.02012async / await
C# 6.02015Satr interpolatsiyasi, nameof
C# 8.02019Nullable havola turlari, switch ifodasi
C# 9.02020record, yuqori darajali ko'rsatmalar
C# 122023Asosiy konstruktorlar, to'plam ifodalari
C# 142025extension a'zolari, field kalit so'zi

C# va .NET - ikki xil narsa #

Bu chalkashtiriladigan joy, shuning uchun darhol aniqlashtiramiz.

Kodingizdan ishlaydigan dasturgacha C# kodi Program.cs siz yozasiz Kompilyator Roslyn tekshiradi va tarjima qiladi IL kodi misol.dll oraliq til Ishlaydi .NET ish vaqti JIT protsessorga tarjima qiladi .NET - bu butun platforma Ish vaqti (runtime) Standart kutubxona dotnet buyrug'i Paketlar (NuGet) C# - til, ya'ni yozish qoidalari. .NET - shu tilda yozilgan dasturni ishga tushiradigan platforma. Taqqoslash: C# - o'zbek tili, .NET - kitob, bosmaxona va kutubxona birgalikda.
Kod IL ga aylanadi, IL esa ishlayotgan mashinaning protsessor buyruqlariga
Nega ikki bosqichli tarjima?

C++ da kod to'g'ridan-to'g'ri protsessor buyruqlariga aylanadi - shuning uchun Windows uchun qurilgan dastur Linux'da ishlamaydi.

C# da esa kompilyator IL (oraliq til) hosil qiladi. IL hech qaysi protsessorga tegishli emas. Dastur ishga tushganda JIT (Just-In-Time) kompilyatori uni o'sha paytdagi protsessor buyruqlariga aylantiradi.

Natijada bitta .dll fayl Windows'da ham, Linux'da ham, ARM protsessorli Mac'da ham ishlaydi. Tarjima bir marta, ishga tushganda bo'ladi - shuning uchun dastur birinchi soniyada biroz sekinroq ishlaydi, keyin tezlashadi.

C# qayerda ishlatiladi #

SohaNima bilan
Veb backendASP.NET Core
Ish stoli dasturlariWPF, WinForms, Avalonia
O'yinlarUnity - dunyodagi eng mashhur o'yin dvigateli
Mobil ilovalar.NET MAUI
Bulut xizmatlariAzure, mikroxizmatlar
Sun'iy intellektML.NET
Unity va C#

Agar o'yin yaratishni xohlasangiz, C# ni bilish deyarli majburiy. Unity dvigatelida skriptlar faqat C# da yoziladi.

Steam'dagi indi o'yinlarning katta qismi, mobil o'yinlarning esa aksariyati aynan Unity'da qilingan.

Tilning uchta xususiyati #

1. Turlar qat'iy tekshiriladi #

CSHARP
int yosh = 25;
string ism = "Husanboy";

Console.WriteLine($"{ism} - {yosh} yosh");
Console.WriteLine($"Ikki yildan keyin: {yosh + 2}");
Natija
Husanboy - 25 yosh
Ikki yildan keyin: 27

Agar yosh ga satr berishga urinsangiz, dastur ishga tushmaydi - kompilyator xatoni oldindan topadi. Bu Python va JavaScript'dan asosiy farqi.

2. Xotira o'zi tozalanadi #

C++ da ajratilgan xotirani o'zingiz qaytarasiz. C# da buni axlat yig'uvchi (garbage collector) bajaradi: keraksiz obyektlarni topib, xotirani bo'shatadi.

Bu qulaylik, lekin bepul emas - 11-bo'limda uning narxini ko'ramiz.

3. Standart kutubxona juda katta #

Ko'p narsani o'zingiz yozish shart emas:

CSHARP
string[] shaharlar = { "Namangan", "Andijon", "Samarqand", "Toshkent" };

Array.Sort(shaharlar);
Console.WriteLine(string.Join(", ", shaharlar));
Console.WriteLine($"Eng uzun nom: {shaharlar.MaxBy(s => s.Length)}");
Natija
Andijon, Namangan, Samarqand, Toshkent
Eng uzun nom: Samarqand

Saralash, birlashtirish va eng uzunini topish - uch qator. Ularning hammasi tilning o'zida bor.

Bu darslikdagi barcha misollar sinab ko'rilgan

Har bir csharp bloki .NET 10 da haqiqatan kompilyatsiya qilingan va ishga tushirilgan. Ostidagi output bloki - dasturning o'zi bergan natija, qo'lda yozilgan emas.

Ya'ni nusxa ko'chirib ishga tushirsangiz, aynan shu natijani olasiz. Agar boshqacha chiqsa - bu bobdagi xato emas, sizning muhitingizda farq bor degani. Keyingi bo'limda muhitni to'g'ri sozlaymiz.

Amaliy topshiriq
  1. C# va .NET farqini o'z so'zingiz bilan yozing.
  2. "#" belgisining ikkita ma'nosini ayting.
  3. Anders Hejlsberg C# dan oldin va keyin qaysi mahsulotlarni yaratgan?
  4. IL nima va nega kerakligini bir abzatsda tushuntiring.
  5. 2016-yilda nima o'zgargani va bu nega muhimligini yozing.
  6. Yuqori darajali ko'rsatmalar va Main metodi orasidagi farqni ayting.
  7. C# ishlatiladigan uchta sohani sanang.
  8. C# ning Python'dan asosiy farqini yozing.
  9. Axlat yig'uvchi nima qilishini tushuntiring.
  10. Unity haqida qidirib, unda qaysi til ishlatilishini tasdiqlang.

Xulosa #

  • C# - Microsoft yaratgan, qat'iy turlarga ega zamonaviy til.
  • Uni Anders Hejlsberg boshchiligidagi jamoa yaratgan; u avval Turbo Pascal va Delphi, keyin TypeScript ni ham yozgan.
  • # - musiqadagi diez belgisi: "C dan bir pog'ona yuqori".
  • C# - til, .NET - uni ishga tushiradigan platforma.
  • Kod avval IL ga, ishga tushganda esa JIT orqali protsessor buyruqlariga aylanadi - shuning uchun bitta fayl hamma joyda ishlaydi.
  • 2016-yilda .NET ochiq kodli va ko'p platformali bo'ldi.
  • Zamonaviy C# da eng oddiy dastur bir qator - Main ni kompilyator o'zi yozadi.

Keyingi bo'limda .NET SDK ni o'rnatib, birinchi loyihani yaratamiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.