मॉड्यूल, संरचनाएं, और कक्षाएं

व्यवस्थित करने के लिए सिर्फ तीन तरीके हैं VB.NET आवेदन।

  • मॉड्यूल
  • संरचनाएं
  • कक्षाएं

लेकिन अधिकांश तकनीकी लेख यह मानते हैं कि आप पहले से ही उनके बारे में सब जानते हैं। यदि आप अभी भी उन लोगों में से एक हैं, जिनके पास अभी भी कुछ प्रश्न हैं, तो आप बस भ्रमित बिट्स को पढ़ सकते हैं और इसे जानने का प्रयास कर सकते हैं। और अगर आपके पास ए बहुत समय के माध्यम से, आप के माध्यम से खोज शुरू कर सकते हैं माइक्रोसॉफ्ट के प्रलेखन:

  • "एक मॉड्यूल एक पोर्टेबल निष्पादन योग्य फ़ाइल है, जैसे कि type.dll या application.exe, जिसमें एक या अधिक वर्ग और इंटरफ़ेस शामिल हैं।"
  • "एक क्लास स्टेटमेंट एक नए डेटा प्रकार को परिभाषित करता है।"
  • "संरचना कथन एक मिश्रित मूल्य प्रकार को परिभाषित करता है जिसे आप अनुकूलित कर सकते हैं।"

ठीक है। कोई सवाल?

Microsoft के लिए थोड़ा अधिक निष्पक्ष होने के लिए, उनके पास इन सभी के बारे में जानकारी के पृष्ठ और पृष्ठ (और अधिक पृष्ठ) हैं जिन्हें आप के माध्यम से मिटा सकते हैं। और उन्हें यथासंभव सटीक होना चाहिए क्योंकि वे मानक निर्धारित करते हैं। दूसरे शब्दों में, माइक्रोसॉफ्ट का प्रलेखन कभी-कभी एक कानून की किताब की तरह पढ़ता है क्योंकि यह है एक कानून की किताब।

instagram viewer

लेकिन अगर आप सिर्फ .NET सीख रहे हैं, तो यह बहुत भ्रामक हो सकता है! कहीं न कहीं से आपको प्रारंभ करना होगा। तीन मूल तरीकों को समझना जो आप VB.NET में कोड लिख सकते हैं, शुरू करने के लिए एक अच्छी जगह है।

तुम लिख सकते हो VB.NET इन तीन रूपों में से किसी का उपयोग करके कोड। दूसरे शब्दों में, आप एक बना सकते हैं सांत्वना आवेदन VB.NET एक्सप्रेस में और लिखें:

मॉड्यूल मॉड्यूल 1
उप मुख्य()
MsgBox ("यह एक मॉड्यूल है!")
अंत उप
अंत मॉड्यूल
कक्षा Class1
उप मुख्य()
MsgBox ("यह एक वर्ग है")
अंत उप
एंड क्लास
संरचना Struct1
स्ट्रिंग के रूप में मंद
उप मुख्य()
MsgBox ("यह एक संरचना है")
अंत उप
अंत संरचना

यह नहीं बनाता है कोई भी बेशक एक कार्यक्रम के रूप में। मुद्दा यह है कि आपको सिंटैक्स त्रुटि नहीं मिलती है, इसलिए यह "कानूनी" है VB.NET कोड.

ये तीनों रूप सभी .NET की रानी मधुमक्खी की जड़ को कोड करने का एकमात्र तरीका है: ऑब्जेक्ट। एकमात्र तत्व जो तीन रूपों की समरूपता को बाधित करता है, वह कथन है: स्ट्रिंग के रूप में मंद. इसकी संरचना एक "समग्र डेटा प्रकार" के रूप में होती है, जैसा कि Microsoft अपनी परिभाषा में बताता है।

ध्यान देने वाली एक और बात यह है कि सभी तीन ब्लॉकों में ए उप मुख्य() उनमे। ओओपी के सबसे मौलिक सिद्धांतों में से एक को आमतौर पर कहा जाता है कैप्सूलीकरण. यह "ब्लैक बॉक्स" प्रभाव है। दूसरे शब्दों में, आपको प्रत्येक वस्तु का स्वतंत्र रूप से इलाज करने में सक्षम होना चाहिए और यदि आप चाहें तो पहचान के तौर पर उप-नाम का उपयोग करना भी शामिल है।

कक्षाएं

कक्षाएं शुरू करने के लिए 'सही' जगह हैं, क्योंकि माइक्रोसॉफ्ट नोट्स, "एक क्लास ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) का एक मौलिक बिल्डिंग ब्लॉक है।" वास्तव में, कुछ लेखक मॉड्यूल और संरचनाओं को सिर्फ विशेष प्रकार की कक्षाओं के रूप में मानते हैं। एक वर्ग एक मॉड्यूल से अधिक वस्तु उन्मुख है क्योंकि यह संभव है इन्स्तांत (की एक प्रति) एक वर्ग लेकिन एक मॉड्यूल नहीं।

दूसरे शब्दों में, आप कोड कर सकते हैं ...

पब्लिक क्लास फॉर्म 1
निजी उप Form1_Load (_
सिस्टम के रूप में ByVal प्रेषक। वस्तु, _
ByVal e As System। EventArgs) _
MyBase को हैंडल करता है। भार
कक्षा 1 = नई कक्षा 1 के रूप में डिम myNewClass
myNewClass। ClassSub ()
अंत उप
एंड क्लास

(वर्ग तात्कालिकता पर बल दिया गया है।)

इससे कोई फर्क नहीं पड़ता कि क्या वास्तविक वर्ग ही इस मामले में ...

सार्वजनिक वर्ग Class1
उप क्लाससुब ()
MsgBox ("यह एक वर्ग है")
अंत उप
एंड क्लास

... किसी फ़ाइल में अपने आप से या उसी फ़ाइल का हिस्सा है जिसके साथ है फॉर्म 1 कोड। कार्यक्रम ठीक उसी तरह चलता है। (नोटिस जो फॉर्म 1 एक वर्ग भी है।)

आप क्लास कोड भी लिख सकते हैं जो एक मॉड्यूल की तरह व्यवहार करता है, अर्थात, इसे बिना इंस्टेंट किए। इसे ए कहते हैं साझा कक्षा। VB.NET में "स्टेटिक" (अर्थात, "साझा") बनाम डायनामिक प्रकार का लेख इसे और अधिक विस्तार से बताता है।

कक्षाओं के बारे में एक और तथ्य को भी ध्यान में रखा जाना चाहिए। सदस्य (गुण और विधियाँ) वर्ग के केवल मौजूद होते हैं जबकि कक्षा का उदाहरण मौजूद होता है। इसके लिए नाम है scoping. यह है की क्षेत्र एक वर्ग की आवृत्ति सीमित है। इस बिंदु को इस तरह दर्शाने के लिए ऊपर दिए गए कोड को बदला जा सकता है:

पब्लिक क्लास फॉर्म 1
निजी उप Form1_Load (_
सिस्टम के रूप में ByVal प्रेषक। वस्तु, _
ByVal e As System। EventArgs) _
MyBase को हैंडल करता है। भार
कक्षा 1 = नई कक्षा 1 के रूप में डिम myNewClass
myNewClass। ClassSub ()
myNewClass = कुछ भी नहीं
myNewClass। ClassSub ()
अंत उप
एंड क्लास

जब दूसरा myNewClass। ClassSub () बयान निष्पादित किया जाता है, ए शून्य संदर्भ अपवाद त्रुटि को फेंक दिया जाता है क्योंकि ClassSub सदस्य मौजूद नहीं है।

मॉड्यूल

वीबी 6 में, उन कार्यक्रमों को देखना आम था जहां अधिकांश कोड एक मॉड्यूल (ए) में था .BAS, फ़ाइल के बजाय, उदाहरण के लिए, में प्रपत्र जैसे फ़ाइल करें Form1.frm।) VB.NET में, मॉड्यूल और कक्षाएं दोनों हैं .VB फ़ाइलें। VB.NET में मुख्य कारण मॉड्यूल शामिल हैं, प्रोग्रामर्स को अलग-अलग जगहों पर कोड डालकर अपने सिस्टम को व्यवस्थित करने का एक तरीका दिया जाता है ताकि गुंजाइश को ठीक करने के लिए और उनके लिए एक्सेस का उपयोग किया जा सके कोड. (अर्थात, मॉड्यूल के कितने सदस्य मौजूद हैं और अन्य कोड किस संदर्भ को संदर्भित कर सकते हैं और सदस्यों का उपयोग कर सकते हैं।) कभी-कभी, आप कोड को अलग मॉड्यूल में रखना चाह सकते हैं जिससे कि काम करना आसान हो सके।

सभी VB.NET मॉड्यूल हैं साझा क्योंकि वे तात्कालिक नहीं हो सकते हैं (ऊपर देखें) और उन्हें चिह्नित किया जा सकता है मित्र या जनता इसलिए उन्हें या तो एक ही विधानसभा में या जब भी उन्हें संदर्भित किया जाता है, तब तक पहुँचा जा सकता है।

संरचनाएं

संरचनाएं वस्तुओं के तीन रूपों में से सबसे कम समझी जाती हैं। अगर हम "वस्तुओं" के बजाय "जानवरों" के बारे में बात कर रहे थे, तो संरचना एक होगी एर्डवार्क.

एक संरचना और एक वर्ग के बीच बड़ा अंतर यह है कि एक संरचना एक है मान प्रकार और एक वर्ग ए है संदर्भ प्रकार.

इसका क्या मतलब है? मुझे खुशी है कि आपने पूछा।

एक मान प्रकार एक ऑब्जेक्ट है जिसे सीधे मेमोरी में संग्रहीत किया जाता है। एक पूर्णांक एक मूल्य प्रकार का एक अच्छा उदाहरण है। यदि आपने घोषित किया पूर्णांक इस तरह से अपने कार्यक्रम में ...

Dim myInt Integer = 10 के रूप में

... और आपने मेमोरी स्टोरेज को चेक किया मींट, आपको मान 10 मिलेगा। आप इसे "स्टैक पर आबंटित" के रूप में वर्णित भी देखते हैं।

स्टैक और हीप कंप्यूटर मेमोरी के उपयोग को प्रबंधित करने के विभिन्न तरीके हैं।

एक संदर्भ प्रकार एक ऑब्जेक्ट है जहां ऑब्जेक्ट का स्थान मेमोरी में संग्रहीत किया जाता है। तो एक संदर्भ प्रकार के लिए एक मान ढूँढना हमेशा एक दो कदम है। ए तार एक संदर्भ प्रकार का एक अच्छा उदाहरण है। यदि आपने घोषित किया तार इस तरह ...

मंद myString स्ट्रिंग के रूप में = "यह myString है"

... और आपने मेमोरी स्टोरेज को चेक किया myString, आपको एक अन्य मेमोरी लोकेशन मिलेगा (जिसे a कहा जाता है सूचक - चीजों को करने का यह तरीका C शैली भाषाओं का बहुत दिल है)। आपको "यह myString है" मान ज्ञात करने के लिए उस स्थान पर जाना होगा। इसे अक्सर "ढेर पर आवंटित किया जाना" कहा जाता है। ढेर और ढेर

कुछ लेखकों का कहना है कि मूल्य प्रकार भी ऑब्जेक्ट नहीं हैं और केवल संदर्भ प्रकार ऑब्जेक्ट हो सकते हैं। यह निश्चित रूप से सच है कि विरासत की तरह परिष्कृत वस्तु विशेषताओं और कैप्सूलीकरण केवल संदर्भ प्रकारों के साथ ही संभव है। लेकिन हमने यह कहकर इस पूरे लेख की शुरुआत की कि वस्तुओं के लिए तीन रूप थे इसलिए मुझे यह स्वीकार करना होगा कि संरचनाएं किसी प्रकार की वस्तु हैं, भले ही वे गैर-मानक वस्तुएं हों।

संरचनाओं की प्रोग्रामिंग उत्पत्ति कोबोल जैसी फ़ाइल-उन्मुख भाषाओं में वापस जाती है। उन भाषाओं में, डेटा को सामान्य रूप से अनुक्रमिक फ्लैट फ़ाइलों के रूप में संसाधित किया गया था। फ़ाइल से रिकॉर्ड में "फ़ील्ड" को "डेटा परिभाषा" अनुभाग (कभी-कभी "रिकॉर्ड लेआउट" या "कॉपीबुक" कहा जाता है) द्वारा वर्णित किया गया था। इसलिए, यदि फ़ाइल में कोई रिकॉर्ड समाहित है:

1234567890ABCDEF9876

एकमात्र तरीका आपको पता होगा कि "1234567890" एक फोन नंबर था, "एबीसीडीईएफ" एक आईडी था और 9876 $ 98.76 डेटा परिभाषा के माध्यम से था। संरचनाएं आपको VB.NET में इसे पूरा करने में मदद करती हैं।

संरचना संरचना १
स्ट्रिंग के रूप में डिम myPhone
स्ट्रिंग के रूप में मंद
स्ट्रिंग के रूप में मंद
अंत संरचना

क्यों की तार एक संदर्भ प्रकार है, लंबाई को उसी के साथ रखना आवश्यक है VBFixedString निश्चित लंबाई रिकॉर्ड के लिए विशेषता। आप इस विशेषता का एक विस्तृत विवरण और लेख में सामान्य रूप से विशेषताएँ पा सकते हैं VB .NET.

हालांकि संरचनाएं गैर-मानक वस्तुएं हैं, लेकिन उनके पास VB.NET में बहुत अधिक क्षमता है। आप विधियों, गुणों और यहां तक ​​कि घटनाओं, और ईवेंट हैंडलर्स को संरचनाओं में कोड कर सकते हैं, लेकिन आप अधिक सरलीकृत कोड का उपयोग भी कर सकते हैं और क्योंकि वे मूल्य प्रकार हैं, प्रसंस्करण तेज हो सकता है। उदाहरण के लिए, आप ऊपर की संरचना को इस तरह से फिर से बना सकते हैं:

संरचना संरचना १
स्ट्रिंग के रूप में डिम myPhone
स्ट्रिंग के रूप में मंद
स्ट्रिंग के रूप में मंद
उप mySub ()
MsgBox ("यह myPhone का मूल्य है:" और myPhone)
अंत उप
अंत संरचना

और इसे इस तरह से उपयोग करें:

संरचना के रूप में मंद myStruct 1
myStruct.myPhone = "7894560123"
myStruct.mySub ()

यह आपके समय के लिए थोड़ा संरचनाओं के साथ खेलने के लिए और जानने के लिए लायक है कि वे क्या कर सकते हैं। वे VB.NET के अजीब कोनों में से एक हैं जो आपको ज़रूरत पड़ने पर जादू की गोली दे सकते हैं।

instagram story viewer