C# Enum(गणना) उदाहरण के साथ
⚡ स्मार्ट सारांश
C# में एन्यूमरेशन स्थिर पूर्णांक मानों का एक नामयुक्त समूह परिभाषित करते हैं, जैसे कि सप्ताह के दिन, जिससे कोड को पढ़ना और बनाए रखना आसान हो जाता है। enum कीवर्ड इन निश्चित स्थिरांकों को एक बार घोषित करता है ताकि इन्हें पूरे प्रोग्राम में पुन: उपयोग किया जा सके।

सी# गणना
किसी भी प्रोग्रामिंग भाषा में मानों के एक स्थिर सेट को परिभाषित करने के लिए गणना का उपयोग किया जाता है। उदाहरण के लिए, सप्ताह के दिनों को गणना के रूप में परिभाषित किया जा सकता है और प्रोग्राम में कहीं भी इस्तेमाल किया जा सकता है। C# में, गणना को 'enum' कीवर्ड की मदद से परिभाषित किया जाता है।
आइए एक उदाहरण देखें कि हम 'enum' कीवर्ड का उपयोग कैसे कर सकते हैं।
हमारे उदाहरण में, हम days नामक एक गणना परिभाषित करेंगे, जिसका उपयोग सप्ताह के दिनों को संग्रहीत करने के लिए किया जाएगा। प्रत्येक उदाहरण के लिए, हम अपने Program.cs फ़ाइल में केवल मुख्य फ़ंक्शन को संशोधित करेंगे।
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code स्पष्टीकरण: -
- 'एन्यूम' डाटा प्रकार गणना घोषित करने के लिए निर्दिष्ट किया जाता है। गणना का नाम दिन है। सप्ताह के सभी दिन गणना के मान के रूप में निर्दिष्ट किए जाते हैं।
- अंत में कंसोल.राइट फ़ंक्शन का उपयोग गणना के मानों में से एक को प्रदर्शित करने के लिए किया जाता है।
यदि उपरोक्त कोड ठीक से दर्ज किया गया है और प्रोग्राम सफलतापूर्वक निष्पादित होता है, तो निम्नलिखित आउटपुट प्रदर्शित होगा।
आउटपुट:
आउटपुट से, आप देख सकते हैं कि गणना का 'Sun' मान कंसोल में प्रदर्शित होता है।
C# में Enums का उपयोग क्यों करें?
एनम प्रोग्राम को पढ़ने में आसान, सुरक्षित और रखरखाव में सरल बनाते हैं। कोड में जगह-जगह अस्पष्ट संख्याओं (जिन्हें कभी-कभी मैजिक नंबर भी कहा जाता है) को बिखेरने के बजाय, एन्यूमरेशन प्रत्येक मान को एक वर्णनात्मक नाम देता है जो उसके उद्देश्य को स्पष्ट करता है।
- पठनीयता: Days.Fri जैसा नाम संख्या 5 की तुलना में कहीं अधिक स्पष्ट है, इसलिए कोड को पढ़ने वाला कोई भी व्यक्ति इसका अर्थ तुरंत समझ जाता है।
- टाइप सुरक्षा: एनम प्रकार के साथ घोषित चर केवल परिभाषित सदस्यों में से एक को ही धारण कर सकता है, जिससे अमान्य मानों के आने की संभावना कम हो जाती है।ping अंदर
- रखरखाव: संबंधित स्थिरांक एक ही स्थान पर रहते हैं, इसलिए किसी मान को जोड़ने या उसका नाम बदलने से पूरा प्रोग्राम एकसमान रूप से अपडेट हो जाता है।
- डेटा बाइंडिंग: WPF और ASP.NET जैसे फ्रेमवर्क एक एनम को ड्रॉपडाउन सूची से जोड़ सकते हैं, जिससे एनम उपयोगकर्ता इंटरफेस बनाने के लिए उपयोगी हो जाते हैं।
क्योंकि कंपाइलर हर असाइनमेंट की जांच अनुमत सदस्यों के विरुद्ध करता है, इसलिए एनम प्रोग्राम चलने से पहले ही गलतियों को पकड़ने में मदद करते हैं।
C# एनम को कस्टम मान असाइन करना
डिफ़ॉल्ट रूप से, C# पहले एनम सदस्य को 0 मान देता है और उसके बाद के प्रत्येक सदस्य को एक से बढ़ाता है। ऊपर दिए गए Days एनम में, Sun का मान 0, Mon का मान 1 और Sat का मान 6 है। आप स्पष्ट संख्याएँ निर्दिष्ट करके इन डिफ़ॉल्ट मानों को बदल सकते हैं।
- स्पष्ट मान: enum Level {Low = 1, Medium = 5, High = 10} लिखने से प्रत्येक सदस्य को डिफ़ॉल्ट अनुक्रम के बजाय एक चयनित संख्या पर सेट किया जाता है।
- आंशिक कार्य: यदि आप केवल कुछ सदस्यों को ही मान निर्दिष्ट करते हैं, तो कंपाइलर बाद के सदस्यों के लिए अंतिम निर्दिष्ट मान से क्रमांकन जारी रखता है।
- अंतर्निहित प्रकार: एक एनम डिफ़ॉल्ट रूप से अपने सदस्यों को इंट के रूप में संग्रहीत करता है, लेकिन आप मेमोरी बचाने या रेंज बढ़ाने के लिए इसे बाइट, शॉर्ट या लॉन्ग पर आधारित कर सकते हैं।
कस्टम मान तब उपयोगी होते हैं जब संख्याओं को किसी बाहरी सिस्टम, जैसे डेटाबेस कोड या प्रोटोकॉल स्थिरांक, से मेल खाना आवश्यक होता है, ताकि एनम वास्तविक डेटा को सटीक रूप से प्रतिबिंबित कर सके।
C# Enums को int, string और Flags में कैसे परिवर्तित करें
C# में अक्सर एनम वैल्यू को किसी दूसरे रूप में बदलने की आवश्यकता होती है, जैसे कि उसे संख्या के रूप में स्टोर करना या टेक्स्ट से वापस पढ़ना। ये रूपांतरण कुछ मानक तरीकों से होते हैं।
- एनम से इंट में परिवर्तन: (int)Days.Wed जैसा स्पष्ट कास्ट मूल पूर्णांक लौटाता है, जो भंडारण या अंकगणित के लिए उपयोगी है।
- int से enum: उदाहरण के लिए, दूसरी दिशा में कास्टिंग करने से, (दिन)3, एक संख्या वापस मिलान करने वाले एनम सदस्य में बदल जाती है।
- स्ट्रिंग को एनम में बदलना: Enum.Parse और अधिक सुरक्षित Enum.TryParse, "Fri" जैसे नाम को अमान्य टेक्स्ट पर त्रुटि उत्पन्न किए बिना Days.Fri सदस्य में परिवर्तित करते हैं।
- एनम को स्ट्रिंग में बदलें: किसी भी सदस्य पर ToString फ़ंक्शन को कॉल करने पर उसका नाम वापस मिलता है, इसलिए Days.Sun.ToString() डिस्प्ले या लॉगिंग के लिए "Sun" आउटपुट देता है।
- सदस्यों की सूची: Enum.GetValues और Enum.GetNames प्रत्येक मान या नाम लौटाते हैं, जो मेनू को भरने या इनपुट को मान्य करने में सहायक होता है।
जब किसी एनम को एक विकल्प के बजाय विकल्पों के संयोजन को दर्शाना हो, तो फ़्लैग्स विशेषता का उपयोग करें और प्रत्येक सदस्य को दो की घात दें, जैसे 1, 2, 4 और 8। फिर आप बिटवाइज़ OR ऑपरेटर का उपयोग करके सदस्यों को संयोजित कर सकते हैं और HasFlag विधि का उपयोग करके किसी विशिष्ट विकल्प की जाँच कर सकते हैं।
ये रूपांतरण तकनीकें एक एनम को पठनीय नामों, संग्रहीत संख्याओं और संयुक्त फ़्लैग सेटों के बीच आसानी से स्थानांतरित करने की अनुमति देती हैं,ping कार्यक्रम का शेष भाग टाइप-सुरक्षित और समझने में आसान है।


