<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sanjar Rashidov</title>
    <description>The latest articles on DEV Community by Sanjar Rashidov (@sanjar777).</description>
    <link>https://dev.to/sanjar777</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2095706%2F20a4f18d-4b11-4e63-9fc4-15b30ca714c4.png</url>
      <title>DEV Community: Sanjar Rashidov</title>
      <link>https://dev.to/sanjar777</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sanjar777"/>
    <language>en</language>
    <item>
      <title>C# da struct</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Mon, 17 Mar 2025 17:04:36 +0000</pubDate>
      <link>https://dev.to/sanjar777/c-da-struct-1hf2</link>
      <guid>https://dev.to/sanjar777/c-da-struct-1hf2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Struct&lt;/strong&gt; – bu qiymat turi (value type) bo‘lib, bir nechta ma'lumotlarni bitta tuzilma sifatida guruhlash uchun ishlatiladi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structning 3 ta memberlari (a'zolari bor):&lt;/strong&gt;&lt;br&gt;
1.&lt;em&gt;Field&lt;/em&gt;&lt;br&gt;
2.&lt;em&gt;Property&lt;/em&gt;&lt;br&gt;
3.&lt;em&gt;Method&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Field&lt;/strong&gt; - biz bilgan ichida qiymat saqlovchi o'zgaruvchi desak bo'ladi.&lt;br&gt;
&lt;strong&gt;Property&lt;/strong&gt; - fieldga qiymat saqlash uchun avvalo propertydan o'tadi.&lt;br&gt;
&lt;strong&gt;Method&lt;/strong&gt; - biz bilgan o'sha funksiya lekin struct ichida method deb ataladi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constructor (ctor)&lt;/strong&gt;: Struct/class 'dan obyekt ochilganda avtomatik tarzda chaqiriladigan biz bilgan usha oddiy metod. Ammo, ctor ning qaytuvchi qiymati bo'lmaydi shuningdek, void ham yozilmaydi.&lt;br&gt;
Ctor - ctor bo'lishi uchun ochiladigan metodning nomi struct ning nomi bilan bir-xil bo’lishi SHART!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"this"&lt;/strong&gt; kalit so'zi bor, this orqali, boshga ctor'ni chaqira olamiz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Readonly&lt;/strong&gt; - Field ni faqatgina o'qish uchun cheklab qo'yadi, shu holatda unga qiymatni faqatgina ctor da bera olamiz.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>programming</category>
      <category>coding</category>
      <category>learning</category>
    </item>
    <item>
      <title>C# da Metod</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Tue, 04 Feb 2025 10:54:08 +0000</pubDate>
      <link>https://dev.to/sanjar777/c-da-metod-1g77</link>
      <guid>https://dev.to/sanjar777/c-da-metod-1g77</guid>
      <description>&lt;p&gt;&lt;strong&gt;Metod&lt;/strong&gt;(funksiya) - bu kodning qayta ishlatiladigan qismi bo'lib, u bir yoki bir nechta vazifalarni bajarish uchun yoziladi. Funksiya boshqa joyda chaqirilganda, u bajariladi va natija qaytarilishi mumkin. Funksiya ma'lum bir vazifani bajarish uchun ishlatiladi va kodni modul qilish hamda qayta ishlatishni osonlashtiradi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Funksiyaning asosiy qismlari:&lt;/strong&gt;&lt;br&gt;
Funksiya turi (return type): Funksiya qanday turdagi qiymatni qaytarishi kerakligini bildiradi. Masalan, int, void, double va boshqalar.&lt;/p&gt;

&lt;p&gt;Funksiya nomi (function name): Funksiyaga berilgan ism bo'lib, chaqirilganda uni ishlatish uchun xizmat qiladi.&lt;/p&gt;

&lt;p&gt;Parametrlar (parameters): Funksiya kiruvchi qiymatlar olishi mumkin, bu qiymatlar funksiyaga berilgan argumentlar yordamida uzatiladi. Agar parametrlar kerak bo' lmasa, bo'sh qavslar (()) yoziladi.&lt;/p&gt;

&lt;p&gt;Tana qismi (function body): Funksiya bajaradigan amallar bu yerda yoziladi. Qavslar {} ichiga yoziladi.&lt;/p&gt;

&lt;p&gt;Qaytarish bayonoti (return statement): Funksiya natijani qaytarishi mumkin. Agar funksiya natija qaytarishi kerak bo'lsa, return bayonoti ishlatiladi. Aks holda, funksiya void bo'lishi mumkin va qaytarish talab qilinmaydi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaksis:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;qaytish_turi FunksiyaNomi(parametrlar)
{
    // Funksiyaning ishlash qismi
    return qiymat; // Agar qaytish turi `void` bo'lmasa
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Masalan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string GenerateGreeting(string ism, string sana)
{
    return $"Salom, {ism}! Bugungi sana: {sana}.";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agar kodimiz bir qatorli bo'lsa uni qisqartirsak bo'ladi. "return" -&amp;gt; "=&amp;gt;".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string GenerateGreeting(string ism, string sana)
    =&amp;gt; $"Salom, {ism}! Bugungi sana: {sana}.";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>csharp</category>
      <category>coding</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>C# da string metodlari</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Fri, 31 Jan 2025 19:14:47 +0000</pubDate>
      <link>https://dev.to/sanjar777/c-da-string-metodlari-5bc2</link>
      <guid>https://dev.to/sanjar777/c-da-string-metodlari-5bc2</guid>
      <description>&lt;p&gt;C# dasturlash tilida har xil &lt;strong&gt;String metodlari&lt;/strong&gt; mavjud.&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;Substring&lt;/strong&gt; -&amp;gt; string qaytardi va 2 ta integer qabul qiladi. 1-integer qayerdan boshlab olinishi kerakligi uchun kerak(indeks orqali). 2-integer (ixtiyoriy) va u nechta character olish kerakligini belgilaydi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string message = "Welcome to .Net class";
string part = message.Substring(11, 4);
Console.WriteLine(part);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.&lt;strong&gt;Replace&lt;/strong&gt; -&amp;gt; 2 ta string qabul qiladi. Agarda o'zgartirish kerak bo'lgan belgilarni topa olmasa, original string ni o'zgaruvchiga saqlaydi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string message = "Welcome to .Net course";
string replacedString = message.Replace(".Net", "English");
Console.WriteLine(replacedString);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.&lt;strong&gt;Compare&lt;/strong&gt; -&amp;gt; 2 ta string qabul qiladi. 1-stringga qarab, 2-stringni tekshiradi. Return type integer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int result = string.Compare("apple", "Apple");
Console.WriteLine(result);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.&lt;strong&gt;Contains&lt;/strong&gt; -&amp;gt; bool qaytaradi(true/false). Bir dona tekshiriladigan string qabul qiladi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string message = "Welcome to .NET course";
string course = ".NET";
bool hasDotNet = message.Contains(course);
Console.WriteLine(hasDotNet);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.&lt;strong&gt;Trim&lt;/strong&gt; -&amp;gt; yangilangan string qaytaradi. Bo'sh joylarni (Space) boshidan va oxiridan olib tashlaydi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string name2 = "                Rashidov Sanjar            ";
string updatedname = name2.Trim();
Console.WriteLine(name2);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6.&lt;strong&gt;Index&lt;/strong&gt; -&amp;gt; qidirish uchun string qabul qiladi. Return type integer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string text = "Hello World!";
int index = text.IndexOf("o");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7.&lt;strong&gt;Verbatim&lt;/strong&gt; -&amp;gt; biror tekst yoki so'zni o'zgartirishlarsiz chop etish uchun foydalanashimiz mumkin. Verbatimni ifodalash uchun &lt;em&gt;"@"&lt;/em&gt; belgisidan foydalanamiz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Console.WriteLine("C:\\Windows\\System32\\calc.exe");
Console.WriteLine(@"C:\\Windows\\System32\\calc.exe");
Console.WriteLine("C:\nWindows\nSystem32\ncalc.exe");
Console.WriteLine(@"C:\nWindows\nSystem32\ncalc.exe");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;8.&lt;strong&gt;Split&lt;/strong&gt; -&amp;gt; string ajratgichlari orqali bolaklarga bo'lib beradi, ya'ni alohida qilib ajratadi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string originalString = "olma,anor,banan";
string mevalar = originalString.Split(',');
Console.WriteLine(mevalar[0]);
Console.WriteLine(mevalar[1]);
Console.WriteLine(mevalar[2]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;9.&lt;strong&gt;Join&lt;/strong&gt; -&amp;gt; stringlarni qoshib chiqarish uchun ishlatiladi. Return type string.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string[] words = {"Salom", "Ilmhub", "Megaschool"};
string joinedText = string.Join(", ", words);
Console.WriteLine(joinedText);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;10.&lt;strong&gt;Remove&lt;/strong&gt; -&amp;gt; 2 ta integer ya'ni 1-integer(indeks) qayerda boshlanishi, 2-integer nechta character olib tashlash kerakligini aytadi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string message = "Welcome to English .Net course";
int indexOfDotNet = message.IndexOf(".NET");
string correctedMessage = message.Remove(indexOfDotNet, 5);
Console.WriteLine(correctedMessage); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;11.&lt;strong&gt;StartsWith&lt;/strong&gt; -&amp;gt; string qabul qiladi, bool qaytaradi. Agarda biz bergan so'z bilan boshlansa true, bomasa false qaytadi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string mail = "something@gmail.ru";
bool startWith = mail.StartsWith("something");
Console.WriteLine(startWith);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;12.&lt;strong&gt;EndsWith&lt;/strong&gt; -&amp;gt; string qabul qiladi, bool qaytaradi. Agarda biz bergan so'z bilan tugasa true, bomasa false qaytadi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string mail = "something@gmail.ru";
bool endsWith = mail.EndsWith("mail.ru");
Console.WriteLine(endsWith);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;13.&lt;strong&gt;ToUpper&lt;/strong&gt; -&amp;gt; string ni katta harflarga o'zgartirib beradi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string text = "warning!";
Console.WriteLine(text.ToUpper());
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;14.&lt;strong&gt;ToLower&lt;/strong&gt; -&amp;gt; string ni kichik harflarga o'zgartirib beradi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string text = "WARNING!";
Console.WriteLine(text.ToLower());
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>csharp</category>
      <category>coding</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>C# input</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Mon, 20 Jan 2025 16:36:37 +0000</pubDate>
      <link>https://dev.to/sanjar777/c-input-29g7</link>
      <guid>https://dev.to/sanjar777/c-input-29g7</guid>
      <description>&lt;p&gt;C# dasturlash tilida uchun &lt;strong&gt;Console.ReadLine()&lt;/strong&gt; buyrug'i orqali foydalanuvchidan ma'lumot qabul qilish mumkin va bu buyruq faqat string tipiga mansub.&lt;/p&gt;

&lt;p&gt;Agar biz butun, kasr son yoki char qabul qilmoqchi bo'lsak &lt;strong&gt;Convert&lt;/strong&gt; yoki &lt;strong&gt;Parse&lt;/strong&gt; qilishimiz kerak bo'ladi.&lt;/p&gt;

&lt;p&gt;Masalan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Program
{
    static void Main(string[] args)
    {
        Console.Write("Ismingizni kiriting: ");
        string name = Console.ReadLine();
        Console.WriteLine("Foydalanuvchining ismi " + name);

        // String dan int ga Convert qilishni birinchi usuli
        Console.Write("1-sonni kiriting: ");
        int s1 = Convert.ToInt32(Console.ReadLine());
        Console.Write("2-sonni kiriting: ");
        int s2 = Convert.ToInt32(Console.ReadLine());
        int result1 = son1 + son2;
        Console.WriteLine("Yig'indi: " + result1);

        // String dan int ga Convert qilishni ikkinchi usul
        Console.Write("1-sonni kiriting: ");
        int n1 = int.Parse(Console.ReadLine());
        Console.Write("2-sonni kiriting:  ");
        int n2 = int.Parse(Console.ReadLine());
        int result2 = n1 + n2;
        Console.WriteLine("Yig'indi: " + result2);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>csharp</category>
      <category>programming</category>
      <category>code</category>
      <category>beginners</category>
    </item>
    <item>
      <title>IL (Intermediate Language)</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Thu, 09 Jan 2025 10:24:04 +0000</pubDate>
      <link>https://dev.to/sanjar777/il-intermediate-language-4o36</link>
      <guid>https://dev.to/sanjar777/il-intermediate-language-4o36</guid>
      <description>&lt;p&gt;&lt;strong&gt;IL (Intermediate Language)&lt;/strong&gt; — bu .NET Framework, .NET Core va .NET platformalarida kodning bajarilishidan oldin yaratiladigan oraliq til. IL, ba’zan &lt;strong&gt;MSIL (Microsoft Intermediate Language)&lt;/strong&gt; deb ham ataladi. Bu til .NET dasturlash tillari (C#, VB.NET, F# va boshqalar) yordamida yozilgan kodlarni &lt;strong&gt;Common Language Runtime (CLR)&lt;/strong&gt; tomonidan ishlashga tayyorlaydi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IL qanday ishlaydi?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kompilyatsiya qilish&lt;/strong&gt;:
• Dasturiy kod (masalan, C# yoki VB.NET) birinchi navbatda IL ga kompilyatsiya qilinadi.
• Bu jarayonda C# Compiler (csc.exe) yoki boshqa kompilyator ishlatiladi.
• Natijada IL bytecode bilan to‘ldirilgan .dll yoki .exe fayl yaratiladi.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;JIT (Just-In-Time) kompilyatsiyasi&lt;/strong&gt;:&lt;br&gt;
• Dastur ishga tushirilganda, IL kod CLR yordamida JIT kompilyatori orqali mashina kodiga aylantiriladi.&lt;br&gt;
• Mashina kodi platformaga bog‘liq holda bajariladi (Windows, Linux, macOS va boshqalar).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IL ning xususiyatlari&lt;/strong&gt;:&lt;br&gt;
• Tuzilmali: IL tili yuqori darajadagi tuzilmalarni (klasslar, metodlar, interfeyslar) qo‘llab-quvvatlaydi.&lt;br&gt;
• Tip xavfsizligi: Kodda noto‘g‘ri tiplar bilan ishlashni aniqlash va oldini olish imkonini beradi.&lt;br&gt;
• Bir xil platforma: Har qanday .NET tilidagi kod IL ga kompilyatsiya qilinadi va keyin CLR orqali ishlaydi, bu esa ko‘p tilli dasturlashga imkon beradi.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>CLR (Common Language Runtime)</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Thu, 09 Jan 2025 10:18:38 +0000</pubDate>
      <link>https://dev.to/sanjar777/clr-common-language-runtime-33o7</link>
      <guid>https://dev.to/sanjar777/clr-common-language-runtime-33o7</guid>
      <description>&lt;p&gt;&lt;strong&gt;CLR (Common Language Runtime)&lt;/strong&gt; — bu .NET platformasining markaziy komponentidir. U .NET dasturlarini ishga tushirish va bajarish uchun mas’ul bo‘lgan boshqariladigan (managed) ish vaqti muhitidir. CLR dastur bajarilishining ko‘p jihatlarini boshqaradi, jumladan, xotira boshqaruvi, xatoliklarni tutish, xavfsizlik, va boshqa ko‘plab operatsiyalarni.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CLR ning asosiy vazifalari:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kodni bajarish (Execution)&lt;/strong&gt;:
• CLR dastur ishlashini ta’minlaydi. Dastur birinchi marta ishga tushirilganda, IL (Intermediate Language) kodi JIT (Just-In-Time) kompilyatori orqali mashina kodiga aylantiriladi va keyin bajariladi.
• Dastur tili yoki platformadan qat’iy nazar, barcha .NET tillaridan kelgan kod CLR yordamida ishlaydi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xotira boshqaruvi (Memory Management)&lt;/strong&gt;:
• CLR xotira boshqaruvini amalga oshiradi, ya’ni xotirani ajratadi va qayta ishlaydi. Bu, ayniqsa, Garbage Collection (GC) mexanizmi orqali amalga oshiriladi.
• Garbage Collection dasturda ishlatilmaydigan yoki ortiqcha bo‘lgan xotira manbalarini aniqlaydi va tozalaydi, bu esa xotira yuvish jarayonini soddalashtiradi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xatoliklarni boshqarish (Exception Handling)&lt;/strong&gt;:
• CLR xatoliklarni boshqarish va ularni tuzatishga yordam beradi. Dasturda yuzaga kelgan xatoliklar (exception) CLR tomonidan aniqlanadi va kerakli tarzda qayta ishlanadi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xavfsizlik (Security)&lt;/strong&gt;:
• CLR dasturning xavfsizligini ta’minlash uchun ishlatiladi. Kodni ishlashda xavfsizlikni boshqaradi va har xil xavfsizlik xususiyatlarini o‘z ichiga oladi. Bu &lt;strong&gt;Code Access Security (CAS)&lt;/strong&gt; yordamida amalga oshiriladi.
• CAS orqali CLR kodga qanday resurslarni ishlatishga ruxsat berishini belgilaydi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kross-platform qo‘llab-quvvatlash (Cross-Platform Support)&lt;/strong&gt;:
• CLR dasturining o‘ziga xosligi shundaki, u ko‘p platformali (Windows, Linux, macOS va boshqalar) muhitda ishlashni ta’minlaydi.
• &lt;strong&gt;Mono CLR&lt;/strong&gt; — bu .NET dasturlarini Linux, macOS va boshqa platformalarda ishlashini ta’minlash uchun yaratilgan CLR versiyasidir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JIT (Just-In-Time) Kompilyatsiyasi&lt;/strong&gt;:
• JIT kompilyatori IL (Intermediate Language) kodini mashina kodiga o‘zgartirishni bajaradi. Bu jarayon dastur ishlash vaqtida, ya’ni “just-in-time” (ya’ni, dastur bajarilganda) amalga oshiriladi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multithreading va Parallelizm&lt;/strong&gt;:
• CLR bir nechta oqimlar (threads) bilan ishlashni qo‘llab-quvvatlaydi, bu esa ko‘p yadroli tizimlarda dasturlarni samarali ishlashini ta’minlaydi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platforma va Til Mustaqilligi&lt;/strong&gt;:
• CLR turli tillar va platformalarda ishlashni ta’minlaydi. C#, VB.NET, F# va boshqa .NET tillaridan yozilgan kod CLR tomonidan bir xil tarzda ishlashga majbur qilinadi.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>SDK vs Runtime</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Thu, 09 Jan 2025 09:50:30 +0000</pubDate>
      <link>https://dev.to/sanjar777/sdk-vs-runtime-5292</link>
      <guid>https://dev.to/sanjar777/sdk-vs-runtime-5292</guid>
      <description>&lt;p&gt;&lt;strong&gt;SDK va Runtime&lt;/strong&gt; - bu dasturlash platformalarida ishlatiladigan ikkita asosiy tushuncha. Ular o‘zaro bog‘liq, lekin ularning maqsadlari va qo‘llanilish sohalari farqlanadi. Quyida ularning asosiy farqlari va xususiyatlarini tushuntirib beraman:&lt;/p&gt;

&lt;h2&gt;
  
  
  1. SDK (Software Development Kit)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SDK&lt;/strong&gt; bu dasturiy ta’minot ishlab chiqish uchun zarur vositalar to’plamidir. U dastur yozish, sinovdan o’tkazish va kompilyatsiya qilish uchun ishlab chiqish muhitini ta’minlaydi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDK ning tarkibi:&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;Kompilyatorlar&lt;/strong&gt;: C#, VB.NET yoki boshqa tillarni IL (Intermediate Language) kodga aylantirish uchun.&lt;br&gt;
 • &lt;strong&gt;Kitobxonalar va API’lar&lt;/strong&gt;: Platformaga xos kutubxonalar va dasturiy interfeyslar (masalan, .NET Base Class Library).&lt;br&gt;
 • &lt;strong&gt;CLI vositalari&lt;/strong&gt;: Konsol yoki terminal orqali boshqarish uchun buyruqlar.&lt;br&gt;
 • &lt;strong&gt;Debugger&lt;/strong&gt;: Xatolarni topish va tuzatish uchun.&lt;br&gt;
 • &lt;strong&gt;Doc fayllar&lt;/strong&gt;: Hujjatlar va qo’llanmalar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDK qanday ishlatiladi?&lt;/strong&gt;&lt;br&gt;
 • Yangi dastur yaratish uchun.&lt;br&gt;
 • Kodni kompilyatsiya qilish va sinovdan o’tkazish uchun.&lt;br&gt;
 • Ilovalar rivojlantirish jarayonida to’liq vositalarni ta’minlash uchun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol: .NET SDK&lt;/strong&gt;&lt;br&gt;
 • Agar siz yangi C# ilovasini yaratmoqchi bo‘lsangiz, sizga &lt;strong&gt;.NET SDK&lt;/strong&gt; kerak bo‘ladi. Bu orqali siz yangi loyiha yaratishingiz &lt;strong&gt;(dotnet new)&lt;/strong&gt;, loyihani kompilyatsiya qilishingiz &lt;strong&gt;(dotnet build)&lt;/strong&gt; va sinovdan o‘tkazishingiz mumkin.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Runtime
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Runtime&lt;/strong&gt; dastur kodini ishga tushirish uchun zarur bo’lgan minimal muhitdir. Bu dastur bajariladigan paytda platforma tomonidan taqdim etiladigan xizmatlarni anglatadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runtime ning vazifalari:&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;IL (Intermediate Language)&lt;/strong&gt; kodni mashina kodiga o’zgartirish uchun (masalan, JIT - Just-In-Time kompilyatsiya).&lt;br&gt;
 • &lt;strong&gt;Xotirani boshqarish&lt;/strong&gt;: Dasturga zarur xotira ajratish va bo’shatish uchun.&lt;br&gt;
 • &lt;strong&gt;Garbage Collection&lt;/strong&gt;: Foydalanilmayotgan xotirani avtomatik boshqarish.&lt;br&gt;
 • &lt;strong&gt;Dastur xavfsizligi&lt;/strong&gt;: Kiritilgan kod xavfsizligini nazorat qilish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runtime qanday ishlatiladi?&lt;/strong&gt;&lt;br&gt;
 • Dasturlarni ishga tushirish uchun.&lt;br&gt;
 • Faqat allaqachon kompilyatsiya qilingan kodni bajarish uchun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misol: .Net Runtime&lt;/strong&gt;&lt;br&gt;
 • Agar siz .NET dasturini ishga tushirmoqchi bo‘lsangiz, lekin dastur yozmoqchi yoki kompilyatsiya qilmoqchi bo‘lmasangiz, faqat .NET Runtime kerak bo‘ladi. Bu dastur kodining ishlashiga zarur minimal muhitni ta’minlaydi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qachon SDK va Runtime kerak?
&lt;/h2&gt;

&lt;p&gt;• &lt;strong&gt;SDK&lt;/strong&gt;: Agar siz dastur ishlab chiqayotgan bo‘lsangiz, masalan, kod yozib, loyihani yaratmoqchi bo‘lsangiz.&lt;br&gt;
 • &lt;strong&gt;Runtime&lt;/strong&gt;: Agar siz faqat kompilyatsiya qilingan dasturlarni ishga tushirishni xohlasangiz.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>.Net tarixi</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Thu, 09 Jan 2025 08:47:42 +0000</pubDate>
      <link>https://dev.to/sanjar777/net-tarixi-3f41</link>
      <guid>https://dev.to/sanjar777/net-tarixi-3f41</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Dastlabki bosqichlar (1990-yillar):&lt;/strong&gt;&lt;br&gt;
 • 1990-yillarning oxirida Microsoft zamonaviy, boshqariladigan dasturlash platformasiga ehtiyoj borligini anglab yetdi. Bu platforma dasturiy ta’minot ishonchliligini oshirish va dasturchilarning ishini soddalashtirish uchun kerak edi.&lt;br&gt;
 • Shu sababli, dastlab &lt;strong&gt;Next Generation Windows Services (NGWS)&lt;/strong&gt; deb nomlangan &lt;strong&gt;.NET Framework&lt;/strong&gt; ishlab chiqildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. .NET Framework 1.0 (2002):&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;2002-yil fevralida&lt;/strong&gt; chiqarilgan birinchi versiya &lt;strong&gt;Common Language Runtime (CLR)&lt;/strong&gt; deb ataluvchi boshqariladigan ish vaqti muhiti va yagona dasturlash modelini taqdim etdi.&lt;br&gt;
 • Asosiy komponentlar:&lt;br&gt;
 • C#, VB.NET va C++/CLI kabi bir nechta dasturlash tillarini qo’llab-quvvatlash.&lt;br&gt;
 • Fayllar bilan ishlash, XML va tarmoqlanish kabi umumiy funktsiyalarni ta’minlovchi &lt;strong&gt;Base Class Library (BCL)&lt;/strong&gt;.&lt;br&gt;
 • &lt;strong&gt;ASP.NET&lt;/strong&gt; yordamida dinamik veb-ilovalarni ishlab chiqish imkoniyati.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. .NET Framework 2.0 (2005):&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;Generics&lt;/strong&gt; kabi kodni qayta ishlatish va tip xavfsizligini yaxshilaydigan muhim qo’shimchalarni joriy qildi.&lt;br&gt;
 • &lt;strong&gt;Nullable Types, Common Type System (CTS)&lt;/strong&gt; va boshqa xususiyatlarni qo’shdi.&lt;br&gt;
 • &lt;strong&gt;Visual Studio 2005&lt;/strong&gt; bilan birga chiqarildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. .NET Framework 3.0 (2006):&lt;/strong&gt;&lt;br&gt;
 • Boy dasturlar yaratish uchun yangi texnologiyalarni o’z ichiga oldi:&lt;br&gt;
  • &lt;strong&gt;Windows Presentation Foundation (WPF)&lt;/strong&gt;: Kengaytirilgan UI ishlab chiqish uchun.&lt;br&gt;
  • &lt;strong&gt;Windows Communication Foundation (WCF)&lt;/strong&gt;: Servisga asoslangan dasturlar uchun.&lt;br&gt;
  • &lt;strong&gt;Windows Workflow Foundation (WF)&lt;/strong&gt;: Ish jarayonlari asosidagi dasturlar uchun.&lt;br&gt;
  • &lt;strong&gt;Windows CardSpace&lt;/strong&gt;: Identifikatsiyani boshqarish uchun.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. .NET Framework 3.5 (2007):&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;Language Integrated Query (LINQ)&lt;/strong&gt; ni taqdim etdi, bu SQL-ga o’xshash so’rovlarni bevosita C# va VB.NET-da amalga oshirish imkonini berdi.&lt;br&gt;
 • &lt;strong&gt;ASP.NET AJAX&lt;/strong&gt; bilan veb-texnologiyalar uchun qo‘llab-quvvatlashni yaxshiladi.&lt;br&gt;
 • &lt;strong&gt;Entity Framework (EF)&lt;/strong&gt; ni joriy qildi, bu ob’ekt-relyatsion mapping uchun mo’ljallangan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. .NET Framework 4.x (2010–2019):&lt;/strong&gt;&lt;br&gt;
 • 4.0 versiyasi &lt;strong&gt;Parallel LINQ (PLINQ)&lt;/strong&gt; va &lt;strong&gt;Task Parallel Library (TPL)&lt;/strong&gt; ni joriy qildi, bu ko’p oqimli dasturlashni yaxshiladi.&lt;br&gt;
 • 4.5 versiyasi (2012) asinxron dasturlash uchun &lt;strong&gt;async/await&lt;/strong&gt; funksiyasini taqdim etdi.&lt;br&gt;
 • Vaqt o’tishi bilan yangilanishlar unumdorlikni oshirish, xavfsizlikni ta’minlash va zamonaviy veb-dasturlarni qo’llab-quvvatlashga qaratildi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Ochiq manba va ko‘p platformali qo‘llab-quvvatlashga o‘tish (.NET Core):&lt;/strong&gt;&lt;br&gt;
 • Microsoft 2016-yilda &lt;strong&gt;.NET Core&lt;/strong&gt; ni joriy qildi. Bu ko‘p platformali qo‘llab-quvvatlashni ta’minlovchi, yengil va modulli ochiq manba kodli platformadir.&lt;br&gt;
 • &lt;strong&gt;.NET Core&lt;/strong&gt; Windows, macOS va Linux tizimlarini qo‘llab-quvvatlaydi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. .NET 5 va undan keyin (2020–hozirgi vaqt):&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;2020-yilda&lt;/strong&gt;, Microsoft .NET Framework, .NET Core va Xamarin-ni birlashtirib, &lt;strong&gt;.NET 5&lt;/strong&gt; ni taqdim etdi.&lt;br&gt;
 • &lt;strong&gt;.NET 6 (2021)&lt;/strong&gt; uzoq muddatli qo‘llab-quvvatlash (LTS) va yanada yuqori unumdorlikni ta’minladi.&lt;br&gt;
 • &lt;strong&gt;.NET 7 (2022)&lt;/strong&gt; bulutli, IoT va sun’iy intellektga asoslangan dasturlar uchun yangi imkoniyatlarni qo‘shdi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Muhim bosqichlar:&lt;/strong&gt;&lt;br&gt;
 • &lt;strong&gt;2000-yil&lt;/strong&gt;: Professional Developers Conference (PDC) da .NET e’lon qilindi.&lt;br&gt;
 • &lt;strong&gt;2002-yil&lt;/strong&gt;: .NET Framework 1.0 birinchi versiyasi chiqarildi.&lt;br&gt;
 • &lt;strong&gt;2016-yil&lt;/strong&gt;: .NET Core 1.0 chiqarilishi.&lt;br&gt;
 • &lt;strong&gt;2020-yil&lt;/strong&gt;: .NET 5 ga o’tish.&lt;br&gt;
 • &lt;strong&gt;Hozirgi vaqt&lt;/strong&gt;: .NET 7 va .NET 8 bilan ishlash, samaradorlik va yangi dasturlash yondashuvlari ustida ishlash davom etmoqda.&lt;/p&gt;

</description>
      <category>dotnethistory</category>
      <category>dotnet</category>
      <category>dotnetcore</category>
    </item>
    <item>
      <title>Arrays</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Sat, 02 Nov 2024 11:37:15 +0000</pubDate>
      <link>https://dev.to/sanjar777/arrays-19i9</link>
      <guid>https://dev.to/sanjar777/arrays-19i9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Arrays&lt;/strong&gt; - bu (massivlar) o'zgaruvchilar turdagi qiymatlarning to'plamidir. Massiv bir xil ma'lumotlarni saqlash uchun ishlatiladi. Massivdagi har bir elementga indeks orqali murojaat qilinadi. Indekslar 0dan boshlanadi.&lt;/p&gt;

&lt;p&gt;Masalan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int main()
{``
    int a [7] = {1,2,3,4,5,6,7}

    for(int i = 0; i &amp;lt; 6;i++)
    {
        cout &amp;lt;&amp;lt; i  &amp;lt;&amp;lt; ":" &amp;lt;&amp;lt; a[i] &amp;lt;&amp;lt; endl;
    }

    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpp</category>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Function</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Sat, 02 Nov 2024 11:25:58 +0000</pubDate>
      <link>https://dev.to/sanjar777/function-18ak</link>
      <guid>https://dev.to/sanjar777/function-18ak</guid>
      <description>&lt;p&gt;&lt;strong&gt;Function&lt;/strong&gt;&lt;br&gt;
C++ dasturlash tilida funksiya bu kodning qayta ishlatiladigan qismi bo'lib, u bir yoki bir nechta vazifalarni bajarish uchun yoziladi. Funksiya boshqa joyda chaqirilganda, u bajariladi va natija qaytarilishi mumkin. Funksiya ma'lum bir vazifani bajarish uchun ishlatiladi va kodni modul qilish hamda qayta ishlatishni osonlashtiradi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Funksiyaning asosiy qismlari:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Funksiya turi (return type): Funksiya qanday turdagi qiymatni qaytarishi kerakligini bildiradi. Masalan, int, void, double va boshqalar.&lt;/p&gt;

&lt;p&gt;Funksiya nomi (function name): Funksiyaga berilgan ism bo'lib, chaqirilganda uni ishlatish uchun xizmat qiladi.&lt;/p&gt;

&lt;p&gt;Parametrlar (parameters): Funksiya kiruvchi qiymatlar olishi mumkin, bu qiymatlar funksiyaga berilgan argumentlar yordamida uzatiladi. Agar parametrlar kerak bo' lmasa, bo'sh qavslar (()) yoziladi.&lt;/p&gt;

&lt;p&gt;Tana qismi (function body): Funksiya bajaradigan amallar bu&lt;br&gt;
yerda yoziladi. Qavslar {} ichiga yoziladi.&lt;/p&gt;

&lt;p&gt;Qaytarish bayonoti (return statement): Funksiya natijani qaytarishi mumkin. Agar funksiya natija qaytarishi kerak bo'lsa, return bayonoti ishlatiladi. Aks holda, funkf void bo'lishi mumkin va qaytarish talab qilinmaydi.&lt;/p&gt;

&lt;p&gt;Masalan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int add(int a,int b)``
{
    return a + b;
}
int main()
{
    int a = 7,b = 7;

    cout &amp;lt;&amp;lt; "Result" &amp;lt;&amp;lt; add(a,b) &amp;lt;&amp;lt; endl;

    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cpp</category>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>for loop</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Sat, 02 Nov 2024 11:15:15 +0000</pubDate>
      <link>https://dev.to/sanjar777/for-loop-ao2</link>
      <guid>https://dev.to/sanjar777/for-loop-ao2</guid>
      <description>&lt;p&gt;&lt;strong&gt;for loop&lt;/strong&gt; while loop bilan bir xil. Faqatgina yozilishida ozgina farq qilinadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax of for loop:&lt;/strong&gt;&lt;br&gt;
for(initialization; condition; ++/--)&lt;br&gt;
{&lt;br&gt;
statement&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Masalan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int main()
{
    for(int n = 1; n &amp;lt;= 7; n++)
    {
        cout &amp;lt;&amp;lt; n &amp;lt;&amp;lt; endl;
    }

    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;for loopdagi o'zgaruvchi for loopdan tashqarida ishlamaydi!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>do while loop</title>
      <dc:creator>Sanjar Rashidov</dc:creator>
      <pubDate>Sat, 02 Nov 2024 11:04:15 +0000</pubDate>
      <link>https://dev.to/sanjar777/do-while-loop-3l56</link>
      <guid>https://dev.to/sanjar777/do-while-loop-3l56</guid>
      <description>&lt;p&gt;&lt;strong&gt;Do while loop&lt;/strong&gt; bu while loop bilan bir xil. Ammo "&lt;em&gt;do while loop&lt;/em&gt;"ni sharti birinchi holda false bo'lsa ham dastur bir marta ishga tushadi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax of do while loop:&lt;/strong&gt;&lt;br&gt;
do&lt;br&gt;
{&lt;br&gt;
statement&lt;br&gt;
++/--&lt;br&gt;
}while(condition)&lt;/p&gt;

&lt;p&gt;Masalan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

using namespace std;

int main()
{
    int n = 1;

    do
    {
        cout &amp;lt;&amp;lt; n &amp;lt;&amp;lt; endl;
        n++;
    }while(n &amp;lt;= 7);

    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>programming</category>
      <category>coding</category>
      <category>cpp</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
