के साथ अतिरिक्त जानकारी संबद्ध करना मेरा प्रश्न उदाहरण के साथ सबसे अच्छा चित्रित किया गया है।.NET Enum
मान लीजिए मैं enum है:
public enum ArrowDirection
{
North,
South,
East,
West
}
मैं इकाई वेक्टर उस दिशा के साथ प्रत्येक दिशा के लिए इसी संबद्ध करना चाहते हैं। उदाहरण के लिए मुझे ऐसा कुछ चाहिए जो उत्तर के लिए (0, 1) उत्तर देगा, (-1, 0) पश्चिम के लिए, आदि। मुझे जावा में पता है कि आप enum के अंदर एक विधि घोषित कर सकते हैं जो उस कार्यक्षमता प्रदान कर सकता है।
मेरा वर्तमान समाधान एक स्थिर विधि है - कक्षा के अंदर जो enum परिभाषित करता है - जो एरो डायरेक्शन में पारित एक वेक्टर लौटाता है (विधि लुकअप को पूरा करने के लिए हैशटेबल का उपयोग करती है लेकिन यह वास्तव में महत्वपूर्ण नहीं है) । ऐसा लगता है ... अशुद्ध।
प्रश्न:
क्या .NET में एक enum से संबंधित अतिरिक्त जानकारी संग्रहीत करने के लिए एक सर्वोत्तम अभ्यास समाधान है?
जानकारी के लिए धन्यवाद यह बहुत अच्छा है। हालांकि मुझे एक्सटेंशन के बारे में पता था, मैंने कभी भी एनम एक्सटेंशन –
हाँ के लिए उनका उपयोग नहीं किया था, हाँ, मैं या तो पहले। एक दोस्त ने मुझे इसके बारे में बताया। यह बहुत अच्छा है। मैं सीखने के लिए भी हैरान था (हाल ही में, यहां SO पर) कि आप एक शून्य मूल्य पर एक विस्तार विधि को कॉल कर सकते हैं। यह अभी भी काम करता है क्योंकि यह एक स्थिर विधि है। हमेशा की तरह, सी # टीम ने इन सुविधाओं को सोचकर एक महान काम किया है। –
आपको स्वीकार्य उत्तर प्राप्त करने जा रहे हैं। मैंने कोशिश की और यह पूरी तरह से काम करता है। केवल एक चीज है। मुझे वास्तव में enum घोषित करना चाहिए? अगर मैं इसे कक्षा में छोड़ देता हूं, तो यह कहता है कि यह कम सुलभ है। मुझे इसे बनाने के लिए "ClassName_Enums" कक्षा बनाना था ... – colithium