C# क्लास और ऑब्जेक्ट ट्यूटोरियल उदाहरणों के साथ

⚡ स्मार्ट सारांश

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

  • 🔸 वर्ग: एक क्लास डेटा प्रॉपर्टीज और उस डेटा पर काम करने वाले तरीकों को एक पुन: प्रयोज्य टेम्पलेट में समाहित करती है।
  • 🎯 ऑब्जेक्ट: ऑब्जेक्ट एक क्लास का रनटाइम इंस्टेंस होता है जो अपनी प्रॉपर्टीज़ के लिए ठोस मान रखता है।
  • 🏗️ सृष्टि: नया कीवर्ड एक ऑब्जेक्ट को इंस्टैंशिएट करता है, जैसे कि Tutorial pTutor = new Tutorial(), और इसके लिए मेमोरी आवंटित करता है।
  • 🧱 क्षेत्र और विधियाँ: फ़ील्ड किसी ऑब्जेक्ट की स्थिति को संग्रहीत करते हैं, जबकि SetTutorial और GetTutorial जैसी विधियाँ इसके व्यवहार को परिभाषित करती हैं।
  • 🔐 encapsulation: पब्लिक और प्राइवेट जैसे एक्सेस मॉडिफायर यह नियंत्रित करते हैं कि कोड के बाहर के फ़ील्ड और मेथड किन तक पहुंच सकते हैं।
  • 🤖 एआई सहायता: GitHub Copilot क्लास परिभाषाओं का ढांचा तैयार करता है, जबकि ML.NET मशीन लर्निंग मॉडल के लिए ऑब्जेक्ट डेटा को विशेषताओं के रूप में उपयोग करता है।

C# क्लास और ऑब्जेक्ट

C# किस पर आधारित है? C++ प्रोग्रामिंग भाषा। इसलिए, C# प्रोग्रामिंग भाषा में क्लास और ऑब्जेक्ट के लिए इन-बिल्ट सपोर्ट है। क्लास कुछ और नहीं बल्कि प्रॉपर्टी और मेथड्स का एक एनकैप्सुलेशन है जिसका उपयोग वास्तविक समय की इकाई का प्रतिनिधित्व करने के लिए किया जाता है।

उदाहरण के लिए, यदि आप किसी विशेष एप्लिकेशन में कर्मचारी के डेटा के साथ काम करना चाहते हैं।

कर्मचारी की विशेषताओं में कर्मचारी की आईडी और नाम शामिल होंगे। इन विधियों में कर्मचारी डेटा की प्रविष्टि और संशोधन शामिल होंगे।

इन सभी ऑपरेशनों को C# में क्लास के रूप में दर्शाया जा सकता है। इस अध्याय में, हम देखेंगे कि हम C# में क्लास और ऑब्जेक्ट के साथ और अधिक विस्तार से कैसे काम कर सकते हैं।

क्लास और ऑब्जेक्ट क्या है?

आइये सबसे पहले कक्षाओं से शुरुआत करें।

जैसा कि हमने पहले चर्चा की थी, कक्षाएं एक संक्षेपण हैं डेटा गुण और डेटा विधियाँ.

  • गुणों का उपयोग उस डेटा का वर्णन करने के लिए किया जाता है जिसे क्लास धारण करेगा।
  • ये विधियां बताती हैं कि डेटा पर कौन से ऑपरेशन किए जा सकते हैं।

क्लास और ऑब्जेक्ट्स को बेहतर ढंग से समझने के लिए, आइए नीचे दिए गए उदाहरण पर नजर डालें कि क्लास कैसा दिखेगा।

क्लास का नाम “ट्यूटोरियल” है। क्लास में निम्नलिखित गुण हैं

  1. ट्यूटोरियल आईडी - इसका उपयोग एक अद्वितीय संख्या को संग्रहीत करने के लिए किया जाएगा जो ट्यूटोरियल का प्रतिनिधित्व करेगा।
  2. ट्यूटोरियल का नाम - इसका उपयोग ट्यूटोरियल के नाम को स्ट्रिंग के रूप में संग्रहीत करने के लिए किया जाएगा।

एक क्लास में विधियाँ भी शामिल होती हैं। हमारी क्लास में निम्नलिखित विधियाँ हैं,

  1. सेटट्यूटोरियल - इस विधि का उपयोग ट्यूटोरियल की आईडी और नाम सेट करने के लिए किया जाएगा। उदाहरण के लिए, यदि हम .Net के लिए एक ट्यूटोरियल बनाना चाहते हैं, तो हम इसके लिए एक ऑब्जेक्ट बना सकते हैं। ऑब्जेक्ट की आईडी 1 होगी। दूसरे, हम ट्यूटोरियल के नाम के रूप में ".Net" नाम निर्दिष्ट करेंगे। 1 का आईडी मान और ".Net" का नाम ऑब्जेक्ट की प्रॉपर्टी के रूप में संग्रहीत किया जाएगा।
  2. ट्यूटोरियल प्राप्त करें - इस विधि का उपयोग किसी विशिष्ट ट्यूटोरियल का विवरण प्राप्त करने के लिए किया जाएगा। इसलिए यदि हम ट्यूटोरियल का नाम प्राप्त करना चाहते हैं, तो यह विधि स्ट्रिंग “.Net” लौटाएगी।

C# क्लास और ऑब्जेक्ट

नीचे एक स्नैपशॉट है कि हमारे ट्यूटोरियल क्लास के लिए एक ऑब्जेक्ट कैसा दिख सकता है। हमारे पास 3 ऑब्जेक्ट हैं, जिनमें से प्रत्येक का अपना अलग ट्यूटोरियलआईडी और ट्यूटोरियलनाम है।

C# क्लास और ऑब्जेक्ट

क्लास और ऑब्जेक्ट कैसे बनाएं

आइये अब इस विषय पर विस्तार से चर्चा करें विजुअल स्टूडियो अपना क्लास बनाने के लिए। हम अपने मौजूदा कंसोल एप्लिकेशन पर निर्माण करने जा रहे हैं जिसे हमारे पिछले अध्याय में बनाया गया था। हम अपने वर्तमान एप्लिकेशन के लिए Visual Studio में एक क्लास बनाएंगे।

आइए इस उदाहरण को लागू करने के लिए नीचे दिए गए चरणों का पालन करें।

चरण 1) पहले चरण में हमारे मौजूदा एप्लिकेशन के भीतर एक नया क्लास बनाना शामिल है। यह Visual Studio की मदद से किया जाता है।

क्लास और ऑब्जेक्ट बनाएँ

  1. पहला कदम समाधान पर राइट क्लिक करना है, जो हमारे मामले में 'डेमोएप्लिकेशन' है। यह विकल्पों की एक सूची के साथ एक संदर्भ मेनू लाएगा।
  2. संदर्भ मेनू से Add->Class विकल्प चुनें। यह मौजूदा प्रोजेक्ट में क्लास जोड़ने का विकल्प प्रदान करेगा।

चरण 2) अगला चरण क्लास के लिए एक नाम प्रदान करना और उसे हमारे समाधान में जोड़ना है।

क्लास और ऑब्जेक्ट बनाएँ

  1. प्रोजेक्ट डायलॉग बॉक्स में, हमें सबसे पहले अपने क्लास के लिए एक नाम देना होगा। चलिए अपने क्लास के लिए Tutorial.cs नाम देते हैं। ध्यान दें कि फ़ाइल नाम का अंत .cs से होना चाहिए ताकि यह सुनिश्चित हो सके कि इसे एक उचित क्लास फ़ाइल के रूप में माना जाए।
  2. जब हम Add बटन पर क्लिक करेंगे तो क्लास हमारे समाधान में जुड़ जाएगी।

यदि उपरोक्त चरणों का पालन किया जाए तो आपको विजुअल स्टूडियो में नीचे दिया गया आउटपुट मिलेगा।
आउटपुट: -

क्लास और ऑब्जेक्ट बनाएँ

समाधान में Tutorial.cs नामक एक क्लास जोड़ी जाएगी। यदि आप फ़ाइल खोलेंगे, तो आपको क्लास फ़ाइल में नीचे दिया गया कोड मिलेगा।

क्लास और ऑब्जेक्ट बनाएँ

Code स्पष्टीकरण: -

  1. पहले भाग में अनिवार्य मॉड्यूल शामिल हैं जिन्हें Visual Studio किसी भी .Net फ़ाइल में जोड़ता है। किसी भी .Net प्रोग्राम को चलाने के लिए इन मॉड्यूल की हमेशा आवश्यकता होती है Windows पर्यावरण.
  2. दूसरा भाग क्लास है जिसे फ़ाइल में जोड़ा जाता है। हमारे मामले में क्लास का नाम 'ट्यूटोरियल' है। यह वह नाम है जिसे क्लास के साथ निर्दिष्ट किया गया था जिसे समाधान में जोड़ा गया था।

फिलहाल, हमारी क्लास फ़ाइल कुछ भी नहीं करती है। अगले विषयों में, हम क्लास के साथ काम करने के तरीके के बारे में अधिक जानकारी देखेंगे।

क्षेत्र और विधियाँ

हम पहले ही देख चुके हैं कि कक्षाओं में फ़ील्ड और विधियों को कैसे परिभाषित किया जाता है।

हमारे ट्यूटोरियल क्लास के लिए, हमारे पास निम्नलिखित गुण हो सकते हैं।

  1. ट्यूटोरियल आईडी - इसका उपयोग एक अद्वितीय संख्या संग्रहीत करने के लिए किया जाएगा जो ट्यूटोरियल का प्रतिनिधित्व करेगा।
  2. ट्यूटोरियल नाम - इसका उपयोग ट्यूटोरियल के नाम को संग्रहीत करने के लिए किया जाएगा स्ट्रिंग.

हमारी ट्यूटोरियल क्लास में नीचे उल्लिखित विधियाँ भी हो सकती हैं।

  1. SetTutorial - इस विधि का उपयोग ट्यूटोरियल की आईडी और नाम सेट करने के लिए किया जाएगा।
  2. GetTutorial - इस विधि का उपयोग किसी विशिष्ट ट्यूटोरियल का विवरण प्राप्त करने के लिए किया जाएगा।

आइए अब देखें कि हम अपने कोड में फ़ील्ड्स और विधियों को कैसे शामिल कर सकते हैं।

चरण 1) पहला कदम यह सुनिश्चित करना है कि ट्यूटोरियल क्लास में सही फ़ील्ड और विधियाँ परिभाषित हैं। इस चरण में, हम नीचे दिए गए कोड को Tutorial.cs फ़ाइल में जोड़ते हैं।

क्षेत्र और विधियाँ

Code स्पष्टीकरण: -

  1. पहला कदम ट्यूटोरियलआईडी और ट्यूटोरियलनाम के फ़ील्ड को क्लास फ़ाइल में जोड़ना है। चूंकि ट्यूटोरियलआईडी फ़ील्ड एक संख्या होगी, इसलिए हम इसे एक पूर्णांक के रूप में परिभाषित करते हैं, जबकि ट्यूटोरियलनाम को एक स्ट्रिंग के रूप में परिभाषित किया जाएगा।
  2. इसके बाद, हम SetTutorial विधि को परिभाषित करते हैं। यह विधि 2 पैरामीटर स्वीकार करती है। इसलिए यदि Program.cs SetTutorial विधि को कॉल करता है, तो उसे इन पैरामीटर के लिए मान प्रदान करने की आवश्यकता होगी। इन मानों का उपयोग ट्यूटोरियल ऑब्जेक्ट के फ़ील्ड सेट करने के लिए किया जाएगा।
    1. pID का मान 1 हो जाएगा
    2. pName का मान .Net होगा.
    3. SetTutorial विधि में, ये मान TutorialID और TutorialName को पास कर दिए जाएंगे।
    4. तो अब TutorialID का मान 1 होगा और TutorialName का मान “.Net” होगा।
  3. यहाँ हम ट्यूटोरियल क्लास के फ़ील्ड को पैरामीटर के अनुसार सेट करते हैं। इसलिए हमने ट्यूटोरियलआईडी को pID और ट्यूटोरियलनाम को Pname पर सेट किया है।
  4. फिर हम “String” प्रकार का मान लौटाने के लिए GetTutorial विधि को परिभाषित करते हैं। इस विधि का उपयोग कॉलिंग प्रोग्राम को TutorialName लौटाने के लिए किया जाएगा। इसी तरह, आप Int GetTutorial विधि से भी ट्यूटोरियल आईडी प्राप्त कर सकते हैं
  5. यहां हम कॉलिंग प्रोग्राम को TutorialName फ़ील्ड का मान लौटाते हैं।

चरण 2) अब चलिए अपने Program.cs में कोड जोड़ते हैं, जो हमारा कंसोल एप्लीकेशन है। कंसोल एप्लीकेशन का उपयोग “ट्यूटोरियल क्लास” का ऑब्जेक्ट बनाने और उसके अनुसार SetTutorial और GetTutorial विधियों को कॉल करने के लिए किया जाएगा।

(नोट:- किसी भी समय ऑब्जेक्ट क्लास का एक उदाहरण होता है। क्लास और ऑब्जेक्ट के बीच अंतर यह है कि ऑब्जेक्ट में गुणों के लिए मान होते हैं।)

क्षेत्र और विधियाँ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  int TutorialID; 
  string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   pTutor.SetTutorial(1,".Net");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code स्पष्टीकरण: -

  1. पहला चरण ट्यूटोरियल क्लास के लिए ऑब्जेक्ट बनाना है। यहाँ ध्यान दें कि यह 'new' कीवर्ड का उपयोग करके किया जाता है। 'new' कीवर्ड का उपयोग C# में क्लास से ऑब्जेक्ट बनाने के लिए किया जाता है। फिर ऑब्जेक्ट को pTutor को असाइन किया जाता है परिवर्तनशील.
  2. फिर SetTutorial विधि को कॉल किया जाता है। 1 और “.Net” के पैरामीटर SetTutorial विधि को पास किए जाते हैं। फिर इनका उपयोग क्लास के “TutorialID” और “TutorialName” फ़ील्ड को तदनुसार सेट करने के लिए किया जाएगा।
  3. फिर हम TutorialName प्राप्त करने के लिए Tutorial क्लास की GetTutorial विधि का उपयोग करते हैं। फिर इसे Console.WriteLine विधि के माध्यम से कंसोल पर प्रदर्शित किया जाता है।

यदि उपरोक्त कोड ठीक से दर्ज किया गया है और प्रोग्राम चलाया गया है तो निम्नलिखित आउटपुट प्रदर्शित होगा।

आउटपुट:

क्षेत्र और विधियाँ

आउटपुट से, आप स्पष्ट रूप से देख सकते हैं कि स्ट्रिंग “.Net” GetTutorial विधि द्वारा लौटाई गई थी।

अक्सर पूछे जाने वाले प्रश्न

कंस्ट्रक्टर एक विशेष विधि है जो क्लास के नाम से मेल खाती है और जब new कमांड का उपयोग करके कोई ऑब्जेक्ट बनाया जाता है तो यह स्वचालित रूप से चलती है, और इसके फ़ील्ड को प्रारंभिक मानों से इनिशियलाइज़ करती है।

नया कीवर्ड एक क्लास से ऑब्जेक्ट बनाता है। यह मेमोरी आवंटित करता है, कंस्ट्रक्टर को कॉल करता है और एक रेफरेंस लौटाता है, जैसे कि Tutorial pTutor = new Tutorial()।

क्लास एक रेफरेंस टाइप है जो हीप पर स्टोर होता है, जबकि स्ट्रक्चर एक वैल्यू टाइप है जिसे असाइनमेंट के समय कॉपी किया जाता है। क्लास इनहेरिटेंस को सपोर्ट करते हैं; स्ट्रक्चर नहीं करते।

एक्सेस मॉडिफायर सदस्य की दृश्यता निर्धारित करते हैं। पब्लिक किसी भी कोड के लिए सदस्य को उजागर करता है, प्राइवेट इसे उसी क्लास तक सीमित रखता है, और प्रोटेक्ट इसे व्युत्पन्न क्लासों के साथ साझा करता है।

हाँ। एक क्लास एक ब्लूप्रिंट है, इसलिए आप new कमांड का उपयोग करके कई ऑब्जेक्ट बना सकते हैं। प्रत्येक ऑब्जेक्ट में फ़ील्ड की अपनी कॉपी होती है।ping उनके मूल्य स्वतंत्र हैं।

एक फ़ील्ड सीधे क्लास के अंदर डेटा स्टोर करता है। एक प्रॉपर्टी फ़ील्ड को गेट और सेट एक्सेसर्स के साथ रैप करती है, जो यह नियंत्रित करती है कि मान को कैसे पढ़ा या बदला जाए।

हाँ। GitHub Copilot, Visual Studio के अंदर किसी टिप्पणी या क्लास नाम से क्लास परिभाषाएँ, फ़ील्ड, कंस्ट्रक्टर और मेथड बॉडी का सुझाव देता है। VS Code. Revसही प्रकारों के लिए प्रत्येक को ध्यान से देखें।

ML.NET मॉडल इनपुट और आउटपुट डेटा को C# क्लास के रूप में परिभाषित करता है। आप एक क्लास परिभाषित करते हैं जिसकी प्रॉपर्टीज़ फीचर्स से मैप होती हैं, रिकॉर्ड्स को ऑब्जेक्ट्स में लोड करते हैं और उनसे मॉडल को ट्रेन करते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: