2013-04-27 13 views
5

क्या किसी सामान्य सामान्य पैरामीटर का उपयोग किए बिना सामान्य प्रकार के प्रकार की जांच करना संभव है?मैं उद्देश्यों की जांच के लिए पैरामीटर रहित प्रकार के सी # सामान्य प्रकार का निर्धारण कैसे कर सकता हूं?

उदाहरण के लिए, मैं निम्नलिखित के समान कुछ करने के लिए सक्षम होने के लिए चाहते हैं (वास्तविक प्रकार के नाम मासूम की रक्षा करने के लिए बदल दिया गया है):

var list = new List<SomeType>(); 

... 

if (list is List) 
    { 
    Console.WriteLine("That is a generic list!"); 
    } 

ऊपर कोड वर्तमान में निम्न त्रुटि उत्पन्न करता है:

Using the generic type 'System.Collections.Generic.List<T>' requires 1 type arguments 

क्या इसके आसपास कोई रास्ता है? अधिमानतः, कुछ संक्षिप्त और कुछ जो उन प्रकारों के साथ काम करेगा जिनके पास सामान्य पैरामीटर नहीं हैं (यानी: "अगर MyString सूची है")।

उत्तर

9

आप इस तरह की जाँच कर सकते हैं:

var type = list.GetType(); 
if(type.IsGenericType && 
    type.GetGenericTypeDefinition().Equals(typeof(List<>))) 
{ 
    // do work 
} 
संबंधित मुद्दे

 संबंधित मुद्दे