पहला प्रोग्राम
आप पहले ही SDK इंस्टॉल कर चुके हैं और एक पहली लैब चला चुके हैं। स्क्रीन ने pine दिखाया। यह पृष्ठ उसी प्रोग्राम आकार पर रहता है और एक अलग सवाल पूछता है: फ़ाइल के अंदर किस पंक्ति ने वह शब्द लिखा, और किन पंक्तियों ने कुछ नहीं लिखा। आप फिर से .NET इंस्टॉल नहीं कर रहे। पिछले पृष्ठ की संस्करण पंक्ति जैसी थी वैसी रह सकती है। सार्वजनिक क्लास का नाम Pine रखें, Main रखें, और Console.WriteLine("pine"); रखें। जिस स्क्रीन की आप व्याख्या कर रहे हैं वह अभी भी एक पंक्ति है, और वह पंक्ति pine है।
फ़ाइल में एक से अधिक पंक्तियाँ हैं, इसलिए पहला अनुमान यह है कि फ़ाइल की हर पंक्ति स्क्रीन की एक पंक्ति बन जाती है। वह अनुमान गलत है, और इस पृष्ठ का बाकी हिस्सा दिखाता है क्यों। कई पंक्तियाँ कुछ नाम देती हैं। केवल एक लिखती है। ब्रेसिज़ उन पंक्तियों को समूह बनाती हैं। वे भी नहीं लिखतीं। जब आप फ़ाइल सामने रखकर लिखने वाली पंक्ति की ओर इशारा कर सकें, यह पृष्ठ पूरा है। अगला पृष्ठ एक नोट जोड़ता है जिसे स्क्रीन नहीं दिखाती। वह pine नहीं बदलता।
using System;
public class Pine
{
public static void Main()
{
Console.WriteLine("pine");
}
}
using System छोटे नाम तैयार करता है
पहली उपयोगी पंक्ति using System; है। इसे तैयारी वाली पंक्ति की तरह पढ़ें, उस वाक्य की तरह नहीं जिसे स्क्रीन छापेगी। यह System नामस्थान से नामों को छोटे रूप में लाता है ताकि Console बिना लंबे पथ के दिख सके। आप स्क्रीन पर using शब्द नहीं देखते। आप स्क्रीन पर System नहीं देखते। गलत प्रयोग में इस पंक्ति को हटा दें तो छोटा नाम Console बाद में फेल हो सकता है — वह कंपाइल कहानी किसी और दिन की है। इस पृष्ठ पर पंक्ति रहती है, और स्क्रीन pine रहती है क्योंकि यह पंक्ति नहीं लिखती।
क्लास पंक्ति प्रकार का नाम देती है
अगली प्रकार पंक्ति public class Pine है। इसे तीन शब्दों वाला काम समझें, स्क्रीन टेक्स्ट नहीं। public का मतलब है कि अन्य कोड को इस प्रकार का उपयोग करने की अनुमति है। आप स्क्रीन पर public नहीं देखते। class का मतलब है कि यह फ़ाइल एक नामित इकाई परिभाषित कर रही है। आप स्क्रीन पर class नहीं देखते। Pine उस इकाई का नाम है। इस शिक्षण आकार में फ़ाइल का मूल नाम उसी नाम से मेल खाता है। इस पंक्ति पर नाम बदलें तो फ़ाइल नाम की आदत भी साथ बदलनी चाहिए। वह नियम प्रकार और फ़ाइल के बारे में है। स्क्रीन के बारे में नहीं। फिर स्क्रीन देखें। स्क्रीन Pine नहीं दिखाती। वह pine दिखाती है। बड़ा P और छोटा p एक ही शब्द नहीं हैं। क्लास पंक्ति कभी अपना नाम स्क्रीन पर नहीं लिखती।
उस पंक्ति के बाद का वर्ण खुलने वाला ब्रेस { है। फ़ाइल में बाद वाला मिलान वाला बंद ब्रेस क्लास बॉडी खत्म करता है। उन ब्रेसिज़ के बीच जो कुछ है वह क्लास Pine का है। ब्रेसिज़ बाड़ हैं। वे C# को बताती हैं कि यह इकाई कहाँ शुरू होती है और कहाँ खत्म। बाड़ स्क्रीन के लिए टेक्स्ट नहीं है। आप pine के बगल में { या } नहीं देखेंगे। अगर खुलने वाला ब्रेस हटा दें, फ़ाइल टूट जाती है और कंपाइलर चुप रहने के बजाय त्रुटि लिखता है। वह त्रुटि इस पृष्ठ की नहीं है। यह पृष्ठ दोनों ब्रेसिज़ रखता है, और स्क्रीन pine रहती है।
Main पंक्ति वह जगह है जहाँ runtime शुरू होता है
अगली पंक्ति public static void Main() है। जब लोगों से पूछा जाता है कि प्रोग्राम कहाँ शुरू होता है तो वे इसी पंक्ति की ओर इशारा करते हैं, और शुरू होने के बारे में वे सही हैं। अगर वे फिर कहें कि स्क्रीन Main दिखाती है तो वे गलत हैं। जब आप प्रोजेक्ट चलाते हैं तो runtime इसी आकार की मेथड ढूँढता है। वह इसी पंक्ति से चलना शुरू करता है। शुरू करना लिखने के बराबर नहीं है। पंक्ति पर शब्द इस बारे में निर्देश हैं कि कैसे शुरू करें। वे स्क्रीन के लिए शब्द नहीं हैं।
शब्दों को एक-एक लेकर प्रत्येक को स्क्रीन से जाँचें। public फिर मतलब है कि मेथड बाहर से शुरू की जा सकती है। static मतलब है कि runtime बिना पहले ऑब्जेक्ट बनाए इस मेथड को शुरू कर सकता है। आपने अभी ऑब्जेक्ट नहीं देखे, इसलिए आपको बस इतना चाहिए कि इस शिक्षण आकार पर static जरूरी है और वह प्रिंट नहीं होता। void मतलब है कि यह मेथड कॉलर को कोई मान वापस नहीं देती। इस पृष्ठ पर कॉलर की कहानी नहीं है, और void स्क्रीन पर नहीं है। Main वह नाम है जिसे runtime इस आकार में ढूँढता है। स्क्रीन अभी भी वे चार अक्षर नहीं दिखाती। कोष्ठक पैरामीटर सूची चिह्नित करते हैं। इस पृष्ठ पर सूची खाली है। खाली कोष्ठक भी प्रिंट नहीं होते।
तो Main पंक्ति एक साथ दो तरह से सही हो सकती है। runtime वहीं से शुरू हुआ। स्क्रीन को उस पंक्ति से एक भी शब्द नहीं मिला। अगर आपकी नज़र Main पर इसलिए टिकती है क्योंकि वह फ़ाइल के बीच में है, नज़र हटाएँ। जो शब्द आप स्क्रीन से याद रखते हैं वह pine है, और pine इस पंक्ति पर लिखा नहीं है।
भीतरी पंक्ति pine लिखती है
Main के अंदर, उसके अपने ब्रेसिज़ के बीच, एक और पंक्ति है। वह पंक्ति Console.WriteLine("pine"); है। यही पंक्ति स्क्रीन लिखती है। फ़ाइल में इंडेंट है ताकि आप देख सकें कि वह Main के अंदर बैठी है। इंडेंट स्पेस हैं। स्पेस भी स्क्रीन पर नहीं लिखे जाते। runtime इस भीतरी पंक्ति को इसलिए चलाता है क्योंकि वह उस मेथड के अंदर है जहाँ से प्रोग्राम शुरू होता है। स्क्रीन उस भीतरी पंक्ति के लिखे का उपयोग करती है। बाहरी मेथड के नाम का उपयोग नहीं करती।
भीतरी पंक्ति को बाएँ से पढ़ें। Console वह स्क्रीन सहायक है जो यह कोर्स उपयोग करता है। WriteLine मतलब इसे लिखो, फिर पंक्ति खत्म करो। कोष्ठक के अंदर का भाग वही है जो लिखा जाता है। कोष्ठक के अंदर शब्द pine दोहरे उद्धरण चिह्नों के बीच बैठा है। उद्धरण pine को टेक्स्ट चिह्नित करते हैं। वे टेक्स्ट का हिस्सा नहीं हैं। मन में उन्हें हटाएँ तो बचा शब्द pine है, और वही पूरी स्क्रीन है। उन्हें फ़ाइल में रहने दें। बिना उद्धरण के कंपाइलर pine को उस टेक्स्ट लिटरल नहीं मानता। अंत का सेमीकोलन C# के लिए स्टेटमेंट खत्म करता है। आप स्क्रीन पर सेमीकोलन नहीं देखते। आप pine देखते हैं, और फिर पंक्ति खत्म होती है क्योंकि WriteLine ने उसे खत्म किया।
यहाँ वही लिखने वाली पंक्ति अकेली है, ताकि दूसरी पंक्तियाँ उसे छिपा न सकें।
Console.WriteLine("pine");
dotnet run आदेश में कुछ भी शब्द pine नहीं चुनता। आदेश केवल प्रोजेक्ट शुरू करता है। शब्द उद्धरणों से आता है। अगर उद्धरणों में कोई और शब्द होता, स्क्रीन वही शब्द दिखाती, और यह पृष्ठ वह नहीं करता। इस पृष्ठ के उद्धरणों में pine है, इसलिए स्क्रीन pine है। एक पंक्ति। कोई दूसरी पंक्ति नहीं। स्क्रीन पर कोई उद्धरण नहीं। कोई शब्द Main नहीं। कोई शब्द Pine नहीं।
📊 Which line the screen shows
| पंक्ति | स्क्रीन |
|---|---|
using System; |
इस पंक्ति से कुछ नहीं |
public class Pine |
इस पंक्ति से कुछ नहीं |
public static void Main() |
इस पंक्ति से कुछ नहीं |
Console.WriteLine("pine") |
pine |
लोग क्या गलत पढ़ते हैं
आम चूक यह है कि फ़ाइल ऊपर से पढ़ें और मान लें कि सबसे परिचित शब्द आउटपुट है। Main महत्वपूर्ण लगता है, और है भी, क्योंकि runtime इस आकार को उसके बिना शुरू नहीं करेगा। महत्व आउटपुट नहीं है। आप उंगली से Main पंक्ति ढक सकते हैं और लिखने वाली पंक्ति अभी भी Console.WriteLine("pine"); है। आप लिखने वाली पंक्ति ढककर फिर भी स्क्रीन नहीं समझा सकते। दूसरी चूक यह कहना है कि स्क्रीन Pine दिखाती है क्योंकि क्लास का नाम Pine है। स्क्रीन उद्धरणों के बीच के शब्द का उपयोग करती है, और वह शब्द छोटे p से लिखा है। तीसरी चूक पंक्तियाँ गिनना है। फ़ाइल कई पंक्तियाँ और कई ब्रेसिज़ दिखाती है। स्क्रीन एक दिखाती है। ब्रेसिज़, शब्द public और static और void, नाम Main, नाम Pine, और using System; रन के बाद भी फ़ाइल में हैं। रन उन्हें मिटाता नहीं। उन्हें प्रिंट भी नहीं करता।
स्क्रीन एक पंक्ति से आती है
आप उंगली Console.WriteLine("pine"); पर रख सकते हैं और कह सकते हैं कि स्क्रीन इसी पंक्ति से आती है। आप उंगली public static void Main() पर रख सकते हैं और कह सकते हैं कि runtime वहीं से शुरू होता है और शब्द Main स्क्रीन पर नहीं है। आप उंगली public class Pine पर रख सकते हैं और कह सकते हैं कि यह नाम शिक्षण प्रकार से मेल खाता है और स्क्रीन से नहीं। अगला पृष्ठ फ़ाइल में एक नोट रखता है। नोट उस व्यक्ति के लिए है जो फ़ाइल पढ़ रहा है। स्क्रीन अभी भी pine होगी, क्योंकि नोट दूसरा WriteLine नहीं है।
जब आप C# लिखने वाली पंक्ति का अभ्यास करें तो बचे हुए Java System.out.println("mint") की आदतें इस पृष्ठ से दूर रखें। ASP.NET रूट गढ़ना इस पृष्ठ से दूर रखें। dotnet --version को स्क्रीन शब्द मानना इस पृष्ठ से दूर रखें — संस्करण पंक्ति इंस्टॉल का सबूत थी, इस प्रोग्राम का आउटपुट नहीं। जब आप लिखने वाली पंक्ति का नाम बता सकें और Main तथा Pine के गलत अनुमान अस्वीकार कर सकें, First Program ने अपना काम कर दिया और अगर आप जारी रखें तो C# Comments के लिए तैयार हैं।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी