2013-08-05 6 views
6

मैं एक पुराने VB6 कोड ब्राउज़ कर रहा है और मैं इसवीबी 6 कीवर्ड सेट इसका क्या अर्थ है?

Set AST = CreateObject("ADODB.Stream") 

मैं अनुभव का उपयोग VB6 है और VB.NET लेकिन मैं अपने VB6 परियोजनाओं में से पहले इस कीवर्ड Set का उपयोग कभी नहीं की तरह कुछ देखा। मैं इंटरनेट क्या Set का प्रयोग होता है और क्या मैं केवल पता Properties में उपयोग है में एक बहुत शोध किया है जो केवल मैं VB.NET

Public Property myProperty As String 
    Get 
     Return _myProperty 
    End Get 
    Set(value as String) 
     _myProperty = value 
    End Set 
End Property 

में जानते हैं और मुझे लगता है कि Set ऊपर कोड पर अलग ढंग से प्रयोग किया जाता है । दो दृष्टिकोणों का अंतर क्या है? मुझे पता है कि क्या Set VB6

उत्तर

7

Set में क्या करता है AST चर के लिए एक नया संदर्भ बताए है, बजाय एक के लिए की डिफ़ॉल्ट संपत्ति के मूल्य (वस्तु वर्तमान में AST द्वारा संदर्भित) बताए चाहते हैं।


वहाँ बहुत ज्यादा नहीं वीबी 6 वेब पर चारों ओर प्रलेखन, लेकिन मदद VB.Net अभी भी संदर्भ देता पुराने तरीके के लिए में से कुछ है।

Default Property Changed for Visual Basic 6 Users देखें:

विज़ुअल बेसिक 6.0 में, डिफ़ॉल्ट गुण वस्तुओं पर समर्थित हैं। लेबल नियंत्रण पर, उदाहरण के लिए, कैप्शन डिफ़ॉल्ट प्रॉपर्टी है, और निम्न उदाहरण में दो असाइनमेंट समकक्ष हैं।

...

  • डिफ़ॉल्ट गुण सेट बयान:

Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 

डिफ़ॉल्ट गुण Visual Basic कोड लिखित रूप में आशुलिपि की एक निश्चित राशि सक्षम हैं, वे कई कमियां हैं विजुअल बेसिक भाषा में आवश्यक है। निम्न उदाहरण दिखाता है कि डिफ़ॉल्ट संपत्ति के बजाए ऑब्जेक्ट संदर्भ को इंगित करने के लिए सेट की आवश्यकता है, को असाइन किया जाना है।

Dim lbl1 As Label, lbl2 As Label 
lbl1 = "Saving" ' Assign a value to lbl1's Caption property. 
lbl2 = lbl1  ' Replace lbl2's Caption property with lbl1's. 
Set lbl2 = lbl1 ' Replace lbl2 with an object reference to lbl1. 

तो, VB.Net में, Let और Set अप्रचलित हो गई क्योंकि भाषा के नियमों को बदला (वास्तव में, Let पहले से ही बहुत वीबी 6 में ज्यादा अप्रचलित था)। एक असाइनमेंट A = B, यदि A एक संदर्भ है, तो हमेशा A पर एक नया संदर्भ निर्दिष्ट कर रहा है।


MarkJ टिप्पणी में पुराने VB6 प्रलेखन के लिंक की आपूर्ति की है।

+0

एक अद्भुत स्पष्टीकरण के लिए धन्यवाद –

+0

पूरी तरह से अप्रासंगिक नहीं: डिफ़ॉल्ट गुण अभी भी VB.NET में मौजूद हैं, लेकिन केवल अनुक्रमित गुणों के लिए हैं। उदाहरण के लिए, .NET में डिफ़ॉल्ट गुण आपको 'myList.Item (अनुक्रमणिका)' के बजाय 'myList (अनुक्रमणिका)' लिखने की अनुमति देते हैं। –

+1

@StevenLiekens - जो कि मैंने लिंक किए गए पृष्ठ में शामिल है - इसमें वीबी 6 और .NET दोनों के लिए डिफ़ॉल्ट गुण शामिल हैं और अंतर को हाइलाइट करते हैं, उदा। "विजुअल बेसिक 2008 में, डिफ़ॉल्ट गुण तब तक समर्थित नहीं हैं जब तक वे तर्क नहीं लेते।"। मैं अपना जवाब वीबी क्लासिक के लिए 'सेट' पर केंद्रित रखना चाहता था। –