यह निश्चित रूप से एक नोब सवाल का थोड़ा सा है, लेकिन मेरी खोजों ने इतनी दूर तक मेरे लिए इस मुद्दे को मंजूरी नहीं दी है।सी #: (स्टेटिक) कक्षा-स्तर चर
ए एक विशेष कंसोल ऐप को कई क्लास-स्तरीय चर स्टोर करने के लिए चाहते हैं। एक मामले में, मैं अपनी लॉगिंग ऑब्जेक्ट की एक प्रति स्टोर करना चाहता हूं, जिसे मैं कक्षा के विभिन्न स्थानों में उपयोग करूंगा। एक और मामले में, मैं एक साधारण प्रकार, एक int मूल्य वास्तव में स्टोर करना चाहता हूं, जो केवल आंतरिक रूप से उपयोग किया जा रहा है (संपत्ति होने की आवश्यकता नहीं है)।
ऐसा प्रतीत होता है कि जब तक कि मैं इन चरों को स्थैतिक के रूप में निर्दिष्ट नहीं करता, मैं उन्हें मुख्य() और उससे आगे में उपयोग नहीं कर सकता।
स्थिर वस्तुओं की मेरी समझ यह है कि उनके मूल्य किसी ऑब्जेक्ट के सभी उदाहरणों में साझा किए जाते हैं। सामान्य ऑपरेशन के तहत, मैं उम्मीद करता हूं कि वे मेरे ऐप का केवल एक उदाहरण हों, इसलिए यह समस्या कोई समस्या नहीं है - लेकिन इसने मेरे मूलभूत रूप से कुछ ऐसे हिस्से के बारे में समझने की कमी पर प्रकाश डाला है जो काफी मौलिक है।
मामले में, मेरे लॉगिंग ऑब्जेक्ट के मामले में, मैं इसे स्थिर बनाने के लिए एक मामला देख सकता था - कई उदाहरणों में एक लॉग साझा करना एक लाभ हो सकता है। हालांकि, यह मामला नहीं हो सकता है ... मेरे int के मामले में, मैं निश्चित रूप से यह कभी भी उदाहरणों में साझा नहीं करना चाहता था।
तो ...
- मैं इस के पीछे सिद्धांत गलत समझ रहा हूं?
- क्या मुझे अलग-अलग तरीके से घोषित किया जाना चाहिए और मेरे वर्ग-स्तर चर का उपयोग करना चाहिए?
- क्या मुझे उनका उपयोग करने से परहेज करना चाहिए? मैं फ़ंक्शन से कार्य करने के पैरामीटर के रूप में मूल्यों को बस पास कर सकता हूं, हालांकि यह स्पष्ट लाभ के लिए काम के लिए बहुत कुछ नहीं लगता है।
संपादित करें: ठीक है, संदेश स्पष्ट है - सांख्यिकी की मेरी समझ काफी हद तक सही थी, लेकिन समस्या संरचना और दृष्टिकोण में से एक थी। आपके उत्तरों के लिए धन्यवाद।
नहीं वास्तव में और जवाब है, लेकिन इस की जाँच: http://en.wikipedia.org/wiki/Singleton_pattern – Brad
आपका मुख्य() विधि स्थैतिक है, यही कारण है कि आप केवल स्थिर विधियों और चर से इसका उपयोग कर सकते हैं। –
ऐपडोमेन * के भीतर किसी ऑब्जेक्ट के सभी उदाहरणों में स्टेटिक चर साझा किए जाते हैं। आपके आवेदन का प्रत्येक उदाहरण एक अलग ऐपडोमेन में रहता है। – Douglas