public class GenericList<T>
{
    void Add(T input) { }
}
class TestGenericList
{
    private class ExampleClass 
           {
                
             void  ts() { }           }
    static void Main()
    {
        // Declare a list of type int.
        GenericList<int> list1 = new GenericList<int>();        // Declare a list of type string.
        GenericList<string> list2 = new GenericList<string>();        // Declare a list of type ExampleClass.
        GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
    }
}
如何理解
 GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
能分别这样调用吗?一:list3.ts() ;
二:list3.Add(3) ;
请人指点

解决方案 »

  1.   

    list3.ts() ;
    =>
    list3.Add(new ExampleClass()) ;
    list3[0].ts() ;
    ---------------------list3.Add(3) ;
    =>
    list1.Add(3) ;
      

  2.   

    list3是 GenericList<ExampleClass>集合,而
     GenericList<T>(这里的T是数据类型参数占位符)的成员方法是Add,所以list3只能调用Add来添加T类型的成员,而ts方法是属于ExampleClass类的,只有ExampleClass的实例成员才可以调用ts方法,所以list3集合中的ExampleClass对象实例才能调用ts方法。foreach(ExampleClass item in list3)
    {
        item.ts();//遍历取出list3中的ExampleClass实例,然后调用该实例的ts方法
    }