.NET

2010-08-13 5 views
5

में साझा विधियों का उपयोग कब करें मुझे इस बारे में मिश्रित संदेश मिल रहे हैं इसलिए मुझे उम्मीद है कि कोई मेरे लिए इसे साफ़ कर सकता है।.NET

मैं का उपयोग कर साझा किया जाना चाहिए निम्नलिखित स्थिति में तरीकों/कार्य:

मैं "व्यक्ति" नाम के एक सामान्य वर्ग की है। यह वर्ग डेटाबेस में एक व्यक्ति का प्रतिनिधित्व करता है।

मेरे पास "PersonManager" नामक एक प्रबंधक वर्ग है। इस वर्ग में वे विधियां हैं जो व्यक्तिगत व्यक्ति वस्तुओं को जोड़ती हैं, अपडेट करती हैं, हटा देती हैं। डेटाबेस से व्यक्तियों को देखने के लिए एक विधि भी मौजूद है।

क्या प्रबंधक वर्ग में इन विधियों को साझा विधियों के रूप में घोषित किया जाना चाहिए? या यह हर बार PersonManager कक्षा का एक नया उदाहरण बनाने के लिए और उचित विधि को कॉल करने के लिए अधिक उपयुक्त है।

तो, अगर साझा:

PersonManager.AddPerson(NewPerson) 

बनाम गैर साझा:

Dim MyPersonManager as PersonManager 
MyPersonManager.AddPerson(NewPerson) 

जब व्यक्तियों को देख, साझा संस्करण होगा:

Dim dt as New DataTable 
dt = PersonManager.GetPersons 
बनाम गैर

साझा संस्करण:

Dim dt as New DataTable 
Dim MyPersonManager as New PersonManager 
dt = MyPersonManager.GetPersons 
+4

यहाँ सी # जवाब है http://stackoverflow.com/questions/241339/कब-से-उपयोग-स्थैतिक-वर्ग-इन-सी वीबी उत्तर – Bob

उत्तर

1

के बाद से साझा तरीकों और सदस्यों सी # में स्थिर कहा जाता है वहाँ पहले से ही स्टैक ओवरफ़्लो पर सामान है ...

When to use static classes in C#

+0

लिंक के लिए धन्यवाद! मैं अतीत के लिए वीबी मोड में रहा हूं और चीजों के सी # पक्ष को नहीं माना था। – Michael

2

स्थिर विधियों (विज़ुअल बेसिक में साझा) का उपयोग करें, जब वे किसी विशेष वस्तु से जुड़े व्यवहार को शामिल न करें। उन्हें किसी भी राज्य को अपने कार्यों को करने की आवश्यकता नहीं है।

MSDN पर Static Classes and Static Class Members देखें:

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

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

+0

के लिए साझा किए गए शब्द को बदलें, तो इस उदाहरण में, PersonManager को ऑब्जेक्ट स्टेटस माना जाता है? वर्तमान में, मुझे ऐसा लगता है कि PersonManager बस कुछ कर रहा है और कुछ भी नहीं पकड़ रहा है। मैं बस सबसे अच्छा अभ्यास के बारे में सोच रहा हूँ। एक और उदाहरण त्रुटियों को संभालने में सक्षम हो सकता है।जहां किसी विधि को किसी को अपवाद त्रुटि वाले ईमेल भेजने के लिए उपयोग किया जाता है। एक साझा/स्थिति विधि ऐसे मामले के लिए सबसे अच्छा लगता है, हाँ? – Michael

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