सी# का परिचय

C# (उच्चारण "C sharp") माइक्रोसॉफ्ट द्वारा विकसित एक आधुनिक, सामान्य प्रयोजन प्रोग्रामिंग भाषा है। इसका उपयोग डेस्कटॉप, वेब, मोबाइल और गेमिंग एप्लिकेशन सहित विभिन्न प्रकार के एप्लिकेशन बनाने के लिए व्यापक रूप से किया जाता है। इस गाइड में, हम C# प्रोग्रामिंग की मूल बातें कवर करेंगे, जिसमें डेटा प्रकार, वेरिएबल्स, नियंत्रण प्रवाह, फ़ंक्शन, कक्षाएं, नेमस्पेस, और बहुत कुछ शामिल हैं।

इसके अलावा, C# सुविधाओं और उपकरणों का एक समृद्ध सेट प्रदान करता है, जो इसे विभिन्न डोमेन के लिए एक बहुमुखी और शक्तिशाली प्रोग्रामिंग भाषा बनाता है, जिसमें डेस्कटॉप एप्लिकेशन, वेब डेवलपमेंट, मोबाइल ऐप और Unity जैसी तकनीकों का उपयोग करके गेम डेवलपमेंट शामिल है। जैसे-जैसे आप अपनी C# यात्रा में आगे बढ़ते हैं, आप कार्यों और async/प्रतीक्षा का उपयोग करके अधिक उन्नत विषयों जैसे वंशानुक्रम, बहुरूपता, इंटरफ़ेस, जेनरिक, LINQ (भाषा एकीकृत क्वेरी), और अतुल्यकालिक प्रोग्रामिंग का पता लगा सकते हैं। इन अवधारणाओं को समझने से मजबूत और स्केलेबल एप्लिकेशन डिज़ाइन करने की आपकी क्षमता बढ़ेगी।

आइए बुनियादी बातों से शुरू करें।

विकास परिवेश की स्थापना

C# में कोडिंग शुरू करने के लिए, आपको अपना विकास परिवेश स्थापित करना होगा। आरंभ करने के चरण यहां दिए गए हैं:

  • विज़ुअल स्टूडियो स्थापित करें: आधिकारिक Microsoft वेबसाइट से विज़ुअल स्टूडियो डाउनलोड और इंस्टॉल करें। विज़ुअल स्टूडियो एक शक्तिशाली एकीकृत विकास वातावरण (आईडीई) है जो सी# विकास के लिए आवश्यक सभी उपकरण प्रदान करता है।
  • एक नया प्रोजेक्ट बनाएं: विज़ुअल स्टूडियो लॉन्च करें और एक नया प्रोजेक्ट बनाएं। आप जिस प्रकार के एप्लिकेशन का निर्माण करना चाहते हैं उसके आधार पर उपयुक्त प्रोजेक्ट टेम्पलेट चुनें।
  • कोड लिखें: एक बार जब आपका प्रोजेक्ट सेट हो जाए, तो आप विज़ुअल स्टूडियो द्वारा प्रदान किए गए कोड एडिटर में C# कोड लिखना शुरू कर सकते हैं।

अब जब आपने अपना विकास परिवेश तैयार कर लिया है, तो आइए C# प्रोग्रामिंग की मूल बातें जानें।

हेलो वर्ल्ड प्रोग्राम

पारंपरिक "हैलो, विश्व!" प्रोग्राम अक्सर पहला प्रोग्राम होता है जिसे आप किसी प्रोग्रामिंग भाषा में लिखते हैं। यहां बताया गया है कि आप इसे C# में कैसे लिख सकते हैं:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello, World!");
    }
}

इस कोड उदाहरण में, हम सबसे पहले 'System' नेमस्पेस को शामिल करते हैं, जिसमें इनपुट और आउटपुट को संभालने के लिए 'Console' नामक एक क्लास शामिल है। फिर, हम 'Program' नामक एक वर्ग को परिभाषित करते हैं। इस वर्ग के अंदर, हमारे पास एक 'Main' विधि है, जो C# प्रोग्राम का प्रवेश बिंदु है। अंत में, हम "हैलो, वर्ल्ड!" प्रिंट करने के लिए 'Console.WriteLine' विधि का उपयोग करते हैं। कंसोल को संदेश.

चर और डेटा प्रकार

C# में, आपको variables का उपयोग करने से पहले उन्हें घोषित करना होगा। वेरिएबल विभिन्न डेटा प्रकारों के मान रखते हैं। यहां C# में आमतौर पर उपयोग किए जाने वाले कुछ डेटा प्रकार दिए गए हैं:

  • 'int': पूर्ण संख्याओं का प्रतिनिधित्व करता है (जैसे, 10, -5, 0)।
  • 'double': दशमलव स्थानों के साथ फ़्लोटिंग-पॉइंट संख्याओं का प्रतिनिधित्व करता है (उदाहरण के लिए, 3.14, -0.5)।
  • 'bool': बूलियन मान (सही या गलत) का प्रतिनिधित्व करता है।
  • 'string': वर्णों के अनुक्रम का प्रतिनिधित्व करता है (उदाहरण के लिए, "Hello", "C#")।

यहां एक उदाहरण दिया गया है जो परिवर्तनीय घोषणा और बुनियादी संचालन को प्रदर्शित करता है:

int age = 25;
double pi = 3.14;
bool isStudent = true;
string name = "John";

int sum = age + 5;
double circleArea = pi * 2 * 2;
bool isAdult = age >= 18;

Console.WriteLine("Name: " + name);
Console.WriteLine("Age: " + age);
Console.WriteLine("Sum: " + sum);
Console.WriteLine("Circle Area: " + circleArea);
Console.WriteLine("Is Adult? " + isAdult);

इस उदाहरण में, हम वेरिएबल्स 'age', 'pi', 'isStudent', और 'name' को उनके संबंधित घोषित करते हैं। डेटा के प्रकार। हम जोड़, गुणा और तुलना जैसे कुछ बुनियादी ऑपरेशन करते हैं। 'Console.WriteLine' विधि का उपयोग कंसोल पर मान प्रदर्शित करने के लिए किया जाता है।

सारणियाँ और संग्रह

सारणियाँ और संग्रह C# में मौलिक डेटा संरचनाएँ हैं जो आपको कई मानों को कुशलतापूर्वक संग्रहीत और हेरफेर करने की अनुमति देते हैं। वे विभिन्न प्रोग्रामिंग परिदृश्यों में महत्वपूर्ण भूमिका निभाते हैं और C# विकास में बड़े पैमाने पर उपयोग किए जाते हैं।

सरणियों

C# में एक सारणी एक ही प्रकार के तत्वों का एक निश्चित आकार का संग्रह है। यहाँ एक उदाहरण है:

int[] numbers = new int[5] { 1, 2, 3, 4, 5 };

इस उदाहरण में, हम 'numbers' नामक एक पूर्णांक सरणी घोषित करते हैं जिसका आकार '5' है। हम घुंघराले ब्रेसिज़ '{}' का उपयोग करके निर्दिष्ट मानों के साथ सरणी को प्रारंभ करते हैं। आप 0 से शुरू करके इंडेक्स नोटेशन का उपयोग करके सरणी के अलग-अलग तत्वों तक पहुंच सकते हैं। उदाहरण के लिए, 'numbers[0]' आपको पहला तत्व देता है।

संग्रह

C# में संग्रह सरणियों की तुलना में अधिक लचीलापन प्रदान करते हैं क्योंकि वे गतिशील रूप से बढ़ या सिकुड़ सकते हैं। C# विभिन्न संग्रह प्रकार प्रदान करता है, जैसे 'List<T>', 'Dictionary<TKey, TValue>', और 'HashSet<T>'

आप 'System.Collections.Generic' नेमस्पेस में से किसी एक क्लास का उपयोग करके एक सामान्य संग्रह बना सकते हैं। एक सामान्य संग्रह तब उपयोगी होता है जब संग्रह में प्रत्येक आइटम का डेटा प्रकार समान हो। एक सामान्य संग्रह केवल वांछित डेटा प्रकार को जोड़ने की अनुमति देकर मजबूत टाइपिंग को लागू करता है।

using System.Collections.Generic;

यहां 'List<T>' संग्रह का उपयोग करके एक उदाहरण दिया गया है:

List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");
names.Add("Charlie");

इस उदाहरण में, हम इनिशियलाइज़र क्लास 'List<T>' का उपयोग करके 'names' नामक स्ट्रिंग्स की एक सूची बनाते हैं। हम सूची में तत्वों को जोड़ने के लिए 'Add()' विधि का उपयोग करते हैं।

'List<T>' संग्रह के साथ काम करने के लिए कई उपयोगी तरीके और गुण प्रदान करता है, जैसे कि तत्वों की संख्या प्राप्त करने के लिए 'Count' , हटाने के लिए 'Remove()' एक तत्व, और 'Contains()' यह जाँचने के लिए कि क्या कोई तत्व मौजूद है।

सरणियों और संग्रहों पर पुनरावृत्ति

आप उनके तत्वों तक पहुंचने और उनमें हेरफेर करने के लिए, 'for' या 'foreach' जैसे लूप का उपयोग करके सरणियों और संग्रहों पर पुनरावृति कर सकते हैं। यहां किसी सरणी और सूची पर पुनरावृत्ति का एक उदाहरण दिया गया है:

int[] numbers = new int[] { 1, 2, 3, 4, 5 };

foreach (int number in numbers)
{
    Console.WriteLine(number);
}

List<string> names = new List<string>() { "Alice", "Bob", "Charlie" };

foreach (string name in names)
{
    Console.WriteLine(name);
}

इस उदाहरण में, हम सरणी 'numbers' और सूची 'names' में प्रत्येक तत्व को पुनरावृत्त करने के लिए 'foreach' लूप का उपयोग करते हैं और उन्हें प्रिंट करते हैं। सांत्वना.

बहाव को काबू करें

नियंत्रण प्रवाह आपको निर्णय लेने और शर्तों के आधार पर कोड के विभिन्न ब्लॉक निष्पादित करने की अनुमति देता है। C# कई नियंत्रण प्रवाह संरचनाएं प्रदान करता है, जिसमें 'if' स्टेटमेंट, 'switch' स्टेटमेंट और लूप शामिल हैं।

'If'

एक 'if' स्टेटमेंट आपको कोड के एक ब्लॉक को निष्पादित करने की अनुमति केवल तभी देता है जब कोई निर्दिष्ट शर्त सत्य हो। यहाँ एक उदाहरण है:

int number = 10;

if (number > 0)
{
    Console.WriteLine("The number is positive.");
}
else if (number < 0)
{
    Console.WriteLine("The number is negative.");
}
else
{
    Console.WriteLine("The number is zero.");
}

इस उदाहरण में, हम 'if', 'else if', और 'else' क्लॉज का उपयोग करके 'number' वेरिएबल के मान की जांच करते हैं। स्थिति के आधार पर, उपयुक्त संदेश मुद्रित किया जाएगा.

'Switch'

एक 'switch' स्टेटमेंट आपको एक अभिव्यक्ति के मूल्य के आधार पर निष्पादित किए जाने वाले कई कोड ब्लॉकों में से एक का चयन करने की अनुमति देता है। यहाँ एक उदाहरण है:

int dayOfWeek = 2;
string dayName;

switch (dayOfWeek)
{
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    // ...
    default:
        dayName = "Invalid day";
        break;
}

Console.WriteLine("Today is " + dayName + ".");

इस उदाहरण में, हम कथन 'switch' का उपयोग करके 'dayOfWeek' के मान के आधार पर दिन का नाम निर्दिष्ट करते हैं। 'case' कथन संभावित मान निर्दिष्ट करते हैं और यदि कोई भी मामला मेल नहीं खाता है तो 'default' मामला निष्पादित किया जाता है।

लूप स्टेटमेंट

लूप्स आपको एक निश्चित शर्त पूरी होने तक कोड के एक ब्लॉक को बार-बार निष्पादित करने की अनुमति देते हैं। C# 'for', 'while', और 'do-while' लूप प्रदान करता है।

'For'

एक 'for' लूप का उपयोग तब किया जाता है जब आप पुनरावृत्तियों की संख्या पहले से जानते हैं। यहाँ एक उदाहरण है:

for (int i = 0; i < 5; i++)
{
    Console.WriteLine("Iteration: " + i);
}

इस उदाहरण में, लूप पांच बार चलता है, हर बार पुनरावृत्ति संख्या प्रिंट करता है।

'While'

एक 'while' लूप का उपयोग तब किया जाता है जब आप पहले से पुनरावृत्तियों की संख्या नहीं जानते हैं, लेकिन आपके पास जांच करने के लिए एक शर्त है। यहाँ एक उदाहरण है:

int count = 0;

while (count < 5)
{
    Console.WriteLine("Count: " + count);
    count++;
}

इस उदाहरण में, लूप तब तक चलता है जब तक 'count' वेरिएबल 5 तक नहीं पहुंच जाता।

'Do-While'

एक 'do-while' लूप थोड़ी देर के लूप के समान है, लेकिन अंत में स्थिति की जांच की जाती है, इसलिए लूप कम से कम एक बार निष्पादित होता है। यहाँ एक उदाहरण है:

int num = 1;

do
{
    Console.WriteLine("Number: " + num);
    num++;
} while (num <= 5);

इस उदाहरण में, लूप तब तक चलता है जब तक कि 'num' वेरिएबल 5 से कम या उसके बराबर न हो जाए।

कार्य

फ़ंक्शंस आपको कोड के पुन: प्रयोज्य ब्लॉक को एनकैप्सुलेट करने की अनुमति देता है। C# उन विधियों के लिए 'void' कीवर्ड का उपयोग करके फ़ंक्शन को परिभाषित करने का समर्थन करता है जो मान नहीं लौटाते हैं और उन विधियों के लिए अन्य डेटा प्रकार जो मान लौटाते हैं। यहाँ एक उदाहरण है:

int Add(int a, int b)
{
    return a + b;
}

void Greet(string name)
{
    Console.WriteLine("Hello, " + name + "!");
}

int result = Add(5, 3);
Greet("Alice");

इस उदाहरण में, हम दो फ़ंक्शन परिभाषित करते हैं: 'Add' और 'Greet''Add' फ़ंक्शन दो पूर्णांक पैरामीटर लेता है और उनका योग लौटाता है। 'Greet' फ़ंक्शन एक स्ट्रिंग पैरामीटर लेता है और एक शुभकामना संदेश प्रिंट करता है। फिर हम इन फ़ंक्शंस को उचित तर्कों के साथ कॉल करते हैं।

कक्षाएँ और वस्तुएँ

C# एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जिसका अर्थ है कि यह classes और ऑब्जेक्ट के निर्माण का समर्थन करती है। कक्षाएं ऑब्जेक्ट बनाने के लिए ब्लूप्रिंट को परिभाषित करती हैं, जो उन कक्षाओं के उदाहरण हैं। यहाँ एक उदाहरण है:

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public void SayHello()
    {
        Console.WriteLine("Hello, my name is " + Name + " and I'm " + Age + " years old.");
    }
}

Person person = new Person();
person.Name = "John";
person.Age = 30;
person.SayHello();

इस उदाहरण में, हम एक 'Person' वर्ग को 'Name' और 'Age' गुणों और एक 'SayHello' विधि के साथ परिभाषित करते हैं।. फिर हम 'new' कीवर्ड का उपयोग करके 'Person' वर्ग का एक उदाहरण बनाते हैं और उसके गुण सेट करते हैं। अंत में, हम 'person' ऑब्जेक्ट पर 'SayHello' विधि को कॉल करते हैं।

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) अवधारणाएँ

C# एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, और यह OOP अवधारणाओं जैसे इनहेरिटेंस, एनकैप्सुलेशन और पॉलीमोर्फिज्म का समर्थन करने के लिए विभिन्न सुविधाएँ प्रदान करती है।

विरासत

इनहेरिटेंस आपको मौजूदा कक्षाओं के आधार पर उनकी विशेषताओं और व्यवहारों को विरासत में लेते हुए नई कक्षाएं बनाने की अनुमति देता है। यहाँ एक उदाहरण है:

class Shape
{
    public virtual void Draw()
    {
        Console.WriteLine("Drawing a shape.");
    }
}

class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a circle.");
    }
}

इस उदाहरण में, 'Circle' वर्ग को ':' प्रतीक का उपयोग करके 'Shape' वर्ग से विरासत में मिला है। 'Circle' वर्ग अपना स्वयं का कार्यान्वयन प्रदान करने के लिए बेस क्लास से 'Draw' विधि को ओवरराइड करता है।

कैप्सूलीकरण

एनकैप्सुलेशन एक कक्षा में डेटा और विधियों को एक साथ बंडल करने और उनकी पहुंच को नियंत्रित करने का अभ्यास है। आप सदस्यों की दृश्यता निर्दिष्ट करने के लिए एक्सेस संशोधक ('public', 'private', 'protected', आदि) का उपयोग कर सकते हैं। यहाँ एक उदाहरण है:

class Person
{
    private string name;

    public string GetName()
    {
        return name;
    }

    public void SetName(string newName)
    {
        name = newName;
    }
}

इस उदाहरण में, 'name' फ़ील्ड को 'Person' वर्ग के भीतर संपुटित किया गया है और इसे केवल 'GetName' और [ के माध्यम से ही एक्सेस किया जा सकता है। h81] विधियाँ।

बहुरूपता

बहुरूपता विभिन्न वर्गों की वस्तुओं को एक सामान्य आधार वर्ग की वस्तुओं के रूप में मानने की अनुमति देती है। यह कोड लिखने में सक्षम बनाता है जो विभिन्न प्रकार की वस्तुओं के साथ एक समान तरीके से काम करता है। यहाँ एक उदाहरण है:

class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Animal makes a sound.");
    }
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Dog barks.");
    }
}

class Cat : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Cat meows.");
    }
}

इस उदाहरण में, 'Animal' वर्ग में एक आभासी 'MakeSound' विधि है, जिसे 'Dog' और 'Cat' द्वारा ओवरराइड किया गया है। कक्षाएं। बहुरूपता हमें 'Dog' और 'Cat' के उदाहरणों को 'Animal' के उदाहरण के रूप में मानने और 'MakeSound' को कॉल करने की अनुमति देता है। उन पर विधि.

एक्सेप्शन हेंडलिंग

अपवाद हैंडलिंग आपको रनटाइम त्रुटियों को शानदार ढंग से संभालने की अनुमति देता है। C# में, आप अपवादों को पकड़ने और संभालने के लिए 'try-catch' ब्लॉक का उपयोग कर सकते हैं। यहाँ एक उदाहरण है:

try
{
    int result = 10 / 0;
    Console.WriteLine("Result: " + result);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide by zero error: " + ex.Message);
}
finally
{
    Console.WriteLine("Cleanup code goes here.");
}

इस उदाहरण में, हम शून्य से विभाजन करने का प्रयास करते हैं, जो एक 'DivideByZeroException' फेंकता है। 'try' ब्लॉक के अंदर कोड निष्पादित किया जाता है, और यदि कोई अपवाद होता है, तो इसे ब्लॉक 'catch' द्वारा पकड़ लिया जाता है।

'finally' ब्लॉक को इस बात की परवाह किए बिना निष्पादित किया जाता है कि कोई अपवाद होता है या नहीं, और इसका उपयोग आमतौर पर सफाई कार्यों के लिए किया जाता है।

अपवाद प्रबंधन प्रोग्राम क्रैश को रोकने में मदद करता है और नियंत्रित त्रुटि प्रबंधन और पुनर्प्राप्ति की अनुमति देता है।

निष्कर्ष

इस व्यापक मार्गदर्शिका ने C# प्रोग्रामिंग का विस्तृत परिचय प्रदान किया, जिसमें भाषा के बुनियादी सिद्धांतों और आवश्यक अवधारणाओं को शामिल किया गया। विकास परिवेश स्थापित करने और "हैलो, वर्ल्ड!" लिखने से शुरुआत करें। प्रोग्राम में, हमने डेटा प्रकार, वेरिएबल्स, नियंत्रण प्रवाह संरचनाएं जैसे कि स्टेटमेंट और लूप और फ़ंक्शंस के निर्माण का पता लगाया। हमने कक्षाओं, वस्तुओं, वंशानुक्रम, एनकैप्सुलेशन, बहुरूपता, साथ ही अपवाद प्रबंधन जैसे अधिक उन्नत विषयों पर चर्चा की। इसके अतिरिक्त, हमने एकाधिक मानों को प्रबंधित करने के लिए सरणियों और संग्रहों के उपयोग पर चर्चा की। इस ज्ञान के साथ, अब आपके पास C# प्रोग्रामिंग में एक ठोस आधार है, जो आपको कंसोल एप्लिकेशन से लेकर वेब और मोबाइल एप्लिकेशन तक कई प्रकार के एप्लिकेशन विकसित करने में सक्षम बनाता है। अपने कौशल को बढ़ाने और अनंत संभावनाओं को अनलॉक करने के लिए विशाल सी# पारिस्थितिकी तंत्र का अभ्यास और अन्वेषण जारी रखना याद रखें।