मेरे पास एक सामान्य कार्य है जो संरचना के लिए बाध्य है। मेरे इनपुट बॉक्स किए गए हैं ("ऑब्जेक्ट्स")। क्या प्रत्येक संभावित प्रकार की जांच करने से बचने के लिए रनटाइम पर मान को अनबॉक्स करना संभव है और मैन्युअल रूप से कास्ट करता है?बॉक्स किए गए मान प्रकारों का सामान्य अनबॉक्सिंग
ऊपर के उदाहरण देखें:
public struct MyStruct
{
public int Value;
}
public void Foo<T>(T test)
where T : struct
{
// do stuff
}
public void TestFunc()
{
object o = new MyStruct() { Value = 100 }; // o is always a value type
Foo(o);
}
उदाहरण में, मुझे पता है कि ओ एक struct होना चाहिए (हालांकि, यह होने के लिए MyStruct ... की जरूरत नहीं है)। क्या हर संभावित संरचना प्रकार की जांच करने के लिए बॉयलरप्लेट कोड के बिना फू को कॉल करने का कोई तरीका है?
धन्यवाद।
दिलचस्प सवाल। जानकारी वहां सब कुछ है लेकिन "सामान्य रूप से व्युत्पन्न" करने का एक तरीका प्रतीत नहीं होता है। अधिक निराश। किसी ने गतिशीलता का उल्लेख किया (4.5 की आवश्यकता है)। और मुझे आश्चर्य है कि कोई अभिव्यक्ति पेड़ के साथ कुछ बना सकता है। –