怎样判断一个泛型的数据具体是什么类型?
如下面的代码
public void AAAA<TSource>(IList<TSource> AList)
{
   if (TSource is DbDataRecord)    想判断传递过来的TSource是什么类型? 这样编译不过        this.Text = "Hello";
}

解决方案 »

  1.   

    public void AAAA <TSource>(IList <TSource> AList) 

      if (TSource.Gettype() is DbDataRecord)    
    }
    这样试下看
      

  2.   

    严格相等的情况:  typeof(TSource) == typeof(DbDataRecord)
    支持继承类的情况:typeof(DbDataRecord).IsAssignableFrom(typeof(TSource))
      

  3.   

    public void AAAA <TSource>(IList <TSource> AList) 

      Type t = TSource.Gettype();
      if (t is DbDataRecord)  
      {  }  

      

  4.   

    public void AAAA <TSource>(IList <TSource> AList) 
    泛型函数???
      

  5.   

    不行,TSource不能用的。你们去试下就知道了
      

  6.   

    这样判断算什么意思?
    判断TSource的类型直接判断AList就行了,因为AList就是Tsource的类型 public void AAAA<T>(IList<TSource> AList)
            {
                Type t = AList.GetType();
                if (t is 你要判断的类型)
                {
                     //执行
                }
      

  7.   

    你直接的话是访问不了TSource的话
      

  8.   


            static void Main(string[] args)
            {
                AAAA<string>(new List<string>());
            }
            public static void AAAA<TSource>(IList<TSource> AList)
            {
                Type t = Type.GetType(Regex.Match(AList.GetType().FullName.Replace("[[", "[").Replace("]]", "]"), @"\[(?<type>[^\]]+)\]").Groups["type"].Value);
                Console.WriteLine(t.FullName);
            }
      

  9.   

    ojlovecd  你太牛了,这么复杂的关系东西你都搞出来了。