लोड हो रहा है...

क्लास

क्लास एक नाम वाला टाइप है जिसे आप class से घोषित करते हैं। public class Badge को उसी शिक्षण फ़ाइल में Pine के साथ रखें, या दूसरे टाइप के रूप में Pine के पास रखें। Badge के अंदर एक छोटी static मेथड show लिखें जो ready लिखे। Pine में Main रखें और Badge.show(); बुलाएँ। dotnet run से चलाएँ। स्क्रीन पर एक पंक्ति दिखनी चाहिए: ready। यहाँ आप रिकर्शन से उलटी गिनती नहीं कर रहे। आप दूसरा टाइप नाम दे रहे हैं और उसी टाइप की मेथड से लिखवाना चाहते हैं। यही दूसरा नाम वाला टाइप — एक क्लास जो केवल शुरू करने वाली क्लास नहीं है — इस पेज का पाठ है। शुरू करने वाली पब्लिक क्लास का नाम Pine रखें।

टाइप स्टार्टर के पास बैठता है

मेथड पेजों तक लगभग हर डेमो Main और सहायक मेथड एक ही पब्लिक क्लास Pine के अंदर रखती थी। वह अभी भी काम करता है। यह पेज जानबूझकर दूसरी क्लास जोड़ता है। Badge एक टाइप नाम है। उसे वह प्रोग्राम होने की ज़रूरत नहीं जो शुरू होता है। Pine वह प्रोग्राम है जो शुरू होता है। इस शुरुआती आकार पर दोनों टाइप एक ही फ़ाइल में रह सकते हैं ताकि dotnet run सरल रहे। मायने रखता है टाइप का नाम: Badge के पास show है, और Pine उसे माँगता है।
Pine फ़ाइल खोलें। शुरू करने वाली क्लास का नाम Pine ही रहता है। यह पेज स्टार्टर का नाम नहीं बदलता। अगर अभी भी Main में बचा down रिकर्शन ही सब कुछ है, उसे हटा दें। कोई भी बचा mark हटा दें। कोई भी ReadLine पंक्ति हटा दें। जो फ़ाइल आप रखते हैं वह टाइपिंग का इंतज़ार नहीं करती।
Pine के ब्रेसेस के बाहर — फिर भी उसी फ़ाइल में — लिखें public class Badge। Badge के अंदर लिखें static void show()। बॉडी एक लिखने की पंक्ति है: Console.WriteLine("ready");। इस पेज पर void रखें। मेथड कोई नंबर वापस नहीं करती। वह केवल एक शब्द लिखती है। इस पेज पर Badge में कोई Main नहीं है। यह जानबूझकर है। क्लास मेथड रख सकती है बिना शुरू करने वाली क्लास बने।
चलाने से पहले फ़ाइल सेव करें। पहला बॉक्स वाला प्रोग्राम अकेला Badge दिखाता है ताकि आप टाइप साफ़ पढ़ सकें। दूसरा बॉक्स वाला प्रोग्राम Pine और Badge दोनों के साथ रखा पूरा आकार है।

Badge type with show

csharp
using System;

public class Badge
{
    static void show()
    {
        Console.WriteLine("ready");
    }
}

Pine शुरू करता है; Badge लिखता है

Pine में public static void Main() रहता है। Main के अंदर एक कॉल लिखें: Badge.show();। वह कॉल टाइप Badge का नाम लेती है, एक डॉट, फिर मेथड show। आप Pine के अंदर अकेले show(); नहीं लिखते जब तक show भी Pine में न हो। इस पेज पर show Badge का है, इसलिए कॉल टाइप नाम साथ ले जाती है।

Pine Main calls Badge.show

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Badge.show();
    }
}

public class Badge
{
    static void show()
    {
        Console.WriteLine("ready");
    }
}

रखी हुई फ़ाइल ऊपर से पढ़ें। using System; छोटे नाम तैयार करता है। public class Pine स्टार्टर है। public static void Main() वह जगह है जहाँ रनटाइम शुरू होता है। कॉल Badge.show() Badge टाइप की मेथड में जाती है। वह मेथड ready लिखती है और लौटती है। फिर Pine खत्म होता है। स्क्रीन पर शब्द Badge से आया, स्वयं Pine के अंदर लिखे WriteLine से नहीं। यही विभाजन मुद्दा है: एक क्लास प्रोग्राम शुरू करती है; दूसरी क्लास सहायक रखती है।

dotnet run से चलाएँ। प्रोग्राम एक पंक्ति लिखता है और रुक जाता है। वह आपके टाइप करने का इंतज़ार नहीं करता। अगर dotnet run इंतज़ार करे, तो ReadLine अभी फ़ाइल में है। उस पंक्ति को हटाएँ और Pine में Badge.show(); तथा Badge में show मेथड रखें। स्क्रीन ready दिखाती है। अगर स्क्रीन 3, फिर 2, फिर 1 दिखाए, तो बचा down(3) कॉल अभी चल रहा है। अगर स्क्रीन अक्षर Badge दिखाए, तो लिखने की पंक्ति में कोट्स हैं: Console.WriteLine("Badge");। गलत पंक्ति दिखने पर आप .NET SDK दोबारा इंस्टॉल नहीं करते।
एक बार फिर रन क्रम से चलें। C# Pine.Main से शुरू होता है। वहाँ एकमात्र स्टेटमेंट Badge.show(); है। वह कॉल Badge की show मेथड में कूदती है। show के अंदर WriteLine ready लिखता है। फिर show खत्म होती है, और Main में कुछ नहीं बचा, इसलिए प्रोग्राम खत्म। आपने इस पेज पर Console.WriteLine("ready"); Pine के अंदर नहीं रखा। आपने उसे Badge के नीचे रखा और टाइप नाम से माँगा।

टाइप के साथ भूमिका

एक छोटी टेबल में जोड़ी एक बार पढ़ें। इस पेज पर हर क्लास का एक काम है।

📊 type beside role

Type Role on this page
Badge type that holds show
Pine program that holds Main

आम गलती यह है कि जब show केवल Badge पर हो तो Pine के अंदर बिना Badge. उपसर्ग के show(); लिख देना। तब बिल्ड Pine के अंदर show ढूँढती है और नहीं पाती। दूसरी गलती केवल Badge पर Main रखना और Pine से हटा देना है जबकि आप अभी पुराना स्टार्टर आकार उम्मीद करते हैं — इस पाठ की रखी फ़ाइल के लिए Main को Pine पर रखें। बची रिकर्शन डेमो Main को उलझा सकती हैं। दो-टाइप आकार सीखते समय Main को Badge.show(); तक साफ़ करें। यहाँ down की ज़रूरत नहीं।
Pine के अंदर Console.WriteLine("Badge"); लिखना शब्द Badge लिखता है। वह टाइप पर मेथड नहीं बुलाता। जब आप वह लिखने की पंक्ति चाहते हैं जो Badge में रहती है, Badge.show(); रखें।

यह पेज अभी क्या नहीं करता

यह पेज new Badge() नहीं लिखता। क्लास से ऑब्जेक्ट बनाना अगला पेज है। यहाँ कॉल Badge.show() है — स्वयं टाइप नाम पर एक static मेथड। आप अभी badge पर फ़ील्ड भी नहीं रखते। फ़ील्ड इस मॉड्यूल के बाद के पेज के लिए हैं। अभी का काम केवल स्टार्टर के पास नाम वाला टाइप है, और वह कॉल जो उसी टाइप नाम का इस्तेमाल करती है।
आप show के अंदर लिखा शब्द set कर सकते हैं और फिर चला सकते हैं। स्क्रीन को वह स्ट्रिंग दिखानी चाहिए जो आपने Badge में रखी। Pine वही कॉल रखता है। विभाजन देखने का एक और तरीका: टाइप की मेथड संपादित करें, स्टार्टर की कॉल रखें।
Badge को Pine के ब्रेसेस के अंदर घोंसला न बनाएँ। इस पेज पर दोनों क्लास फ़ाइल में बहनें हैं। Badge की मेथड Badge के अंदर बैठती हैं। Main Pine के अंदर बैठता है।

आप public class Badge घोषित कर सकते हैं, उसके अंदर static void show() रख सकते हैं, और Pine.Main से Badge.show(); बुला सकते हैं। dotnet run से चलाएँ। स्क्रीन वह पंक्ति दिखाती है जो show ने लिखी। क्लास वही नाम वाला टाइप है। Badge को उन सहायकों की लेबल वाली शेल्फ समझें जिन्हें प्रोग्राम शुरू करने की ज़रूरत नहीं। Pine वह दरवाज़ा रहता है जिसे आप dotnet run से खोलते हैं। अगला पेज objects है, जहाँ आप new से क्लास से वैल्यू बनाते हैं।

स्क्रीन Badge की लिखने की पंक्ति रखती है

जो फ़ाइल आप रखते हैं, जब Main Badge.show(); बुलाता है तो ready लिखती है। नाम Badge कॉल में है, और अक्षर Badge स्क्रीन पर छपा लेबल नहीं हैं जब तक आपने उन्हें कोट्स में न रखा हो। Badge को Pine के अंदर घोंसला बनाना इस पाठ का आकार नहीं है।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
5
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी