मुझे डेटाबेस से Int16
मान मिला है, और इसे एक enum प्रकार में बदलने की आवश्यकता है। यह दुर्भाग्यवश कोड की एक परत में किया जाता है जो वस्तुओं के बारे में बहुत कम जानता है, इसके अलावा इसे प्रतिबिंब के माध्यम से एकत्रित किया जा सकता है।कनवर्ट करें। चेंज टाइप और enums में कनवर्ट करना?
इस प्रकार, यह Convert.ChangeType
पर कॉल करना समाप्त होता है जो अमान्य कास्ट अपवाद के साथ विफल रहता है।
मैंने पाया कि मैं क्या एक बदबूदार वैकल्पिक हल पर विचार, इस तरह:
String name = Enum.GetName(destinationType, value);
Object enumValue = Enum.Parse(destinationType, name, false);
वहाँ एक बेहतर तरीका है, इसलिए है कि मैं इस स्ट्रिंग ऑपरेशन के माध्यम से स्थानांतरित करने के लिए नहीं है?
using System;
public class MyClass
{
public enum DummyEnum
{
Value0,
Value1
}
public static void Main()
{
Int16 value = 1;
Type destinationType = typeof(DummyEnum);
String name = Enum.GetName(destinationType, value);
Object enumValue = Enum.Parse(destinationType, name, false);
Console.WriteLine("" + value + " = " + enumValue);
}
}
आउच ... मैं इस तरह सवालों के जवाब देने की कोशिश कर रहा रोकने की आवश्यकता से पहले मैं अपने कॉफी लिया है ... –
मैं अब देखते हैं , Console.WriteLine एक परत में भी है जिसमें enum प्रकार तक पहुंच नहीं है। मैं पूरी तरह से गलत समझा। मेरा (बेवकूफ) जवाब हटा दिया गया। – GvS