सबसे अच्छा तरीका है इस उदाहरण कोड के साथ है:जेनेरिक तर्क के लिए अप्रासंगिक, जेनेरिक प्रकार के साथ ऑब्जेक्ट के प्रकार की तुलना कैसे करें? मेरे सवाल का वर्णन करने के लिए
class Item {}
class Container<T> {}
class Program
{
static void DoSomething(object something)
{
if(typeof(Item) == something.GetType())
{
System.Console.WriteLine("Item");
}
else if(typeof(Container<>) == something.GetType())
{
System.Console.WriteLine("Container<>");
}
}
static void Main(string[] args)
{
DoSomething(new Item());
DoSomething(new Container<int>());
}
}
निम्न पंक्ति काम नहीं करेगा:
else if(typeof(Container<>) == something.GetType())
यह यह स्पष्ट रूप से Container<int>
में Container<>
बदले बिना काम करने के लिए कोई तरीका है? मैं जानना चाहता हूं कि ऑब्जेक्ट 'कंटेनर' प्रकार का है और मुझे वास्तव में कोई दिलचस्पी नहीं है Container<int>
या Container<string>
। प्रतिबिंब के दर्जनों लाइनों के अलावा कोई संकेत?