विवरण
Type.GetEnumValues() मेथड वर्तमान एन्यूमरेशन प्रकार में कॉन्स्टेंट्स के मानों का एक ऐरे लौटाता है। यह केवल एनम प्रकारों पर काम करता है; गैर-एनम प्रकार पर कॉल करने पर ArgumentException फेंकता है।
सिंटैक्स
public virtual Array GetEnumValues();
उदाहरण 1: गैर-एनम प्रकार पर त्रुटि
using System;
public class Demo {
enum Vehicle { Car, Bus, Bike, Airplane }
public static void Main() {
try {
Type type = typeof(int); // गैर-एनम प्रकार
string[] str = type.GetEnumNames();
Console.WriteLine("GetEnumNames() = " + str);
Type type2 = type.GetEnumUnderlyingType();
Console.Write("एनम अंतर्निहित प्रकार = " + type2);
Array arrObj = type.GetEnumValues();
Console.Write("मान = {0}", arrObj);
Console.WriteLine("\nकॉन्स्टेंट्स सूचीबद्ध...");
for (int i = 0; i < str.Length; i++)
Console.Write("{0} ", str[i]);
}
catch (ArgumentException e) {
Console.WriteLine("एनम नहीं!");
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
आउटपुट
एनम नहीं! System.ArgumentException
उदाहरण 2: सही एनम उपयोग
using System;
public class Demo {
enum Vehicle { Car, Bus, Bike, Airplane }
public static void Main() {
try {
Vehicle v = Vehicle.Bike;
Type type = v.GetType();
string[] str = type.GetEnumNames();
Console.WriteLine("GetEnumNames() = " + str);
Type type2 = type.GetEnumUnderlyingType();
Console.Write("एनम अंतर्निहित प्रकार = " + type2);
Array arrObj = type.GetEnumValues();
Console.Write("मान = " + arrObj);
Console.WriteLine("\nकॉन्स्टेंट्स सूचीबद्ध...");
for (int i = 0; i < str.Length; i++)
Console.Write("{0} ", str[i]);
}
catch (ArgumentException e) {
Console.WriteLine("एनम नहीं!");
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
आउटपुट
GetEnumNames() = System.String[]
एनम अंतर्निहित प्रकार = System.Int32
मान = Demo+Vehicle[]
कॉन्स्टेंट्स सूचीबद्ध...
Car Bus Bike Airplane
व्यावहारिक उपयोग
// मानों को टाइप्ड ऐरे के रूप में प्राप्त करें
Vehicle[] values = (Vehicle[])Enum.GetValues(typeof(Vehicle));
// या
Array enumValues = typeof(Vehicle).GetEnumValues();
foreach (Vehicle v in enumValues) {
Console.WriteLine($"{v} = {(int)v}");
}
मुख्य बिंदु
- केवल एनम प्रकारों पर मान्य; अन्यथा
ArgumentException। - मान अंतर्निहित प्रकार के रूप में लौटाए जाते हैं (डिफ़ॉल्ट
int)। - वापस किया गया ऐरे कॉपी नहीं है; इसे संशोधित न करें।
Enum.GetValues()पसंदीदा स्थैतिक विकल्प है।