2009-03-05 8 views

उत्तर

23

यह सी # और अन्य भाषाओं में static जैसा ही है। इसका मतलब है कि कक्षा में प्रत्येक वस्तु चर, संपत्ति या विधि की एक ही प्रति का उपयोग करती है। जब किसी विधि के साथ प्रयोग किया जाता है क्योंकि यह स्थैतिक है तो आपको ऑब्जेक्ट इंस्टेंस की आवश्यकता नहीं होती है।

MyClass.DoSomething() 

बजाय

Dim oObject as New MyClass() 
oObject.DoSomething() 
+5

प्रश्नकर्ता specificaly साझा चर, नहीं साझा तरीकों के बारे में पूछा। –

+10

पदों के बजाए चर को चर पर लागू करने के लिए कुछ करने के साथ मानसिक रूप से DoSomething() को प्रतिस्थापित करें। – OregonGhost

5

आप जब भी आप पूरे आवेदन के लिए चर का एक उदाहरण के लिए, अपने वर्ग की वस्तुओं के बीच साझा करना चाहते हैं। 1-प्रति-वस्तु के बजाय।

26

वीबीएनईटी में "साझा" कीवर्ड सी # में "स्थैतिक" कीवर्ड के बराबर है।

वीबीएनईटी में, साझा कीवर्ड को कक्षा के भीतर मंद, घटना, फ़ंक्शन, ऑपरेटर, संपत्ति, और उप विवरणों पर लागू किया जा सकता है; हालांकि, सी # में, static कीवर्ड को इन वर्गों में सामान्य वर्ग के भीतर, और वर्ग स्तर पर भी संपूर्ण कक्षा को स्थिर बनाने के लिए लागू किया जा सकता है।

एक "साझा" या "स्थैतिक" विधि प्रकार/वर्ग के उदाहरण पर कार्य करने के बजाय "प्रकार" (यानी कक्षा) पर कार्य करती है। चूंकि Shared विधियों (या चर) एक उदाहरण के बजाय प्रकार पर कार्य करते हैं, इसलिए गैर-साझा (यानी प्रत्येक उदाहरण के लिए एक) के विपरीत वैरिएबल या विधि का एक "प्रतिलिपि" हो सकता है (यानी , उदाहरण) विधियों या चर।

उदाहरण के लिए: यदि आपके पास कक्षा है, तो इसे MyClethod नामक एक गैर-साझा विधि के साथ MyClass पर कॉल करें।

Public Class MyClass 
    Public Sub MyMethod() 
     // Do something in the method 
    End Sub 
End Class 

विधि को कॉल करने के लिए आपको विधि को कॉल करने के लिए कक्षा के उदाहरण की आवश्यकता होगी। कुछ की तरह:

Dim myvar as MyClass = New MyClass() 
myvar.MyMethod() 

इस पद्धति तो (विधि परिभाषा पर "साझा" क्वालीफायर जोड़कर एक "साझा" विधि में बनाया गया था, तो आप नहीं रह वर्ग का एक उदाहरण विधि कॉल करने की जरूरत है

Public Class MyClass 
    Public Shared Sub MyMethod() 
     // Do something in the method 
    End Sub 
End Class 

और फिर:।।

MyClass.MyMethod() 

तुम भी नेट ढांचा अपने आप में इस बात का उदाहरण देख सकते हैं उदाहरण के लिए, "स्ट्रिंग" प्रकार कई स्थिर/साझा तरीकों है Ie

// Using an instance method (i.e. Non-shared) of the string type/class. 
Dim s as String = "hello" 
s.Replace("h", "j") 

// Using a static/shared method of the string type/class. 
s = String.Concat(s, " there!"); 

यहाँ एक अच्छा लेख है कि यह आगे बताते है:

Shared Members and Instance Members in VB.NET

+2

वीबी में एक स्थिर (साझा) कक्षा का अनुमानित समकक्ष एक मॉड्यूल है। – Antony

संबंधित मुद्दे