本帖最后由 yollxt 于 2009-07-31 15:43:04 编辑

解决方案 »

  1.   

    List <UserInfo> cList = new List <UserInfo>(); 
        
        cList.UserName="张三"; 
        cList.Password="123"; 错误的
    List <UserInfo> cList = new List <UserInfo>(); 
        
        cList[0].UserName="张三"; 
        cList[0].Password="123"; 泛型最大的优点可以进行约束的可变的集合..
      

  2.   

    以下代码可以体现泛型的优势之一:
    class StackCls<T>
        {
            T[] arr = new T[10];
            int count = 0;
            public void Push(T value)
            {
                arr[count] = value;
                count++;
            }
            public T Pop(int index)
            {
                return arr[index];
            }
        }
    //可以定义这样的泛型类,在运行时实例化类,根据不同的参数,而操作不同类型的数据,提高了代码了可用性,避免因为装箱、拆箱操作造成的性能损失。
     StackCls<int> stk = new StackCls<int>();
     StackCls<string> stk = new StackCls<string>();
    ..
    //客户端实例化类
      

  3.   

    List <UserInfo> cList = new List <UserInfo>(); 
        
        cList.UserName="张三"; 
        cList.Password="123"; 
    这种使用方式是错误的!
    访问List成员要使用索引或者索引值..
      

  4.   


            List<ProductClass> List_ProductClass = new List<ProductClass>();
            ProductClassSystem productClassSystem = new ProductClassSystem();
            List_ProductClass = productClassSystem.Get_ProductClass(0);
            ClassID.DataSource = List_ProductClass;
            ClassID.DataTextField = "ClassName";
            ClassID.DataValueField = "ClassID";
            ClassID.DataBind();帮忙解释一下这里用到的泛型的意义?
      

  5.   

    1.  
    List <UserInfo> MYList = new List <UserInfo>(); 
    UserInfo cList =new UserInfo; 
    UserInfo cList1 =new UserInfo; 
    MYList .Add(cList );
    MYList .Add(cList1 );
     
        
        MYList[0].UserName="张三"; 
        MYList[0].Password="123"; 
      

  6.   

    List <UserInfo> cList = new List <UserInfo>(); 
        
        cList.UserName="张三"; 
        cList.Password="123"; 错误的 ,正确如下:
    List <UserInfo> cList = new List <UserInfo>(); 
        
        cList[0].UserName="张三"; 
         cList[0].Password="123";
     
    泛型最大的优点可以对添加数据进行约束,能够提前发现不合法的数据类型;
    泛型还有很多方法,可以对数据进行排序等操作;
    可以通过索引来取数据。
      

  7.   

    在没有泛型以前
    代码会是这样的List List_ProductClass=new List();
    List_ProductClass.Add(new ProductClass());虽然 你知道你往 List_ProductClass 里 存的是 ProductClass 类
    但是因为 List 中存储的是 object 对象,所以在使用的时候你还需要 类型转换有了泛型之后,你可以直接 指定
    List<ProductClass> List_ProductClass=new List<ProductClass>();
    这个时候 List_ProductClass 就只能存储 ProductClass 类型的对象(ProductClass类 或继承了ProductClass的类)了,存别的就会报错~
      

  8.   


    是ProductClass 这个类里面有两个函数 Name Pwd  的话,这样就只能往里面传两个函数?
      

  9.   


    List <UserInfo> MYList=new List <UserInfo>();//定义泛型集合 MYList ,MYList只能存储 UserInfo 类型
    UserInfo cList=new UserInfo;//定义一个 UserInfo 类 的对象 命名为 cList
    UserInfo cList1=new UserInfo;//定义一个 UserInfo 类 的对象 命名为 cList1
    MYList .Add(cList );//将cList 添加到 MYList 中
    MYList .Add(cList1 );//将cList1 添加到 MYList 中
      

  10.   

    使用泛型的好处:
    假设ProductInfo中有一个companyID属性,返回私有字段_companyID的值(int类型)List<ProductInfo> list=new List<ProductInfo>();
    可以这样使用:int companyId=list.company
    在没有泛型的时候:
    List list=new List();
    list.Add(new ProductInfo());
    因为list中存储的是object类型,所以在使用的时候需要进行类型转
    换,会占用系统资源。
    使用:int companyId=(int)list.company;
      

  11.   

    UserInfo 不是类型啊,他是一个实体类~~,你的意思?
    new两个对象出来是什么意思?之后怎么用?
      

  12.   

    UserInfo cList =new UserInfo; 
        少了个()
    UserInfo cList =new UserInfo(); 
      

  13.   

    楼主的第一种写法是错误的,cList 是一个List,而不是UserInfo实体,
    想赋值的首先要选择器重一个UserInfocList[0].UserName="aaa";
    cList[0].Password="bbb";泛型的两大好处就是
    1. 不用装箱拆箱
    2. 因为是编译时就确定了类型,所以会防止你的类型错误~~
      

  14.   


     new两次添加进去之后会是怎么样?形容一下~,谢谢大家
      

  15.   

    List <UserInfo> cList = new List <UserInfo>(); 
    foreach(DataRow dr in dt.Rows)
    {
        UserInfo u=new UserInfo();
         u.UserName="张三"; 
         u.Password="123"; 
        cList.Add(u);
    }
      

  16.   

    List <UserInfo> 是对象集合,类似于数据集,
    UserInfo 类似数据集中的行
    参考
    参考
      

  17.   

    第一种写法是错误的,他要有索引,
    应该是
    clist[i].UserName="张三";
    clist[i].PassWord=“123”;
      

  18.   


    1.  List <UserInfo,AAA> cList = new List <UserInfo,AAA>(); 
        
        cList[0].UserName="张三"; 
        cList[0].Password="123";那么 我要用到AAA呢  可以用 cList[1].(改类的属性)=XXX 
      

  19.   

    当使用ArrayList中的元素时,必须要进行强制类型转换将元素转换为合适的元素类型,如果元素是值类型的值时,会引起CLR进行拆箱装箱操作,造成一定性能开销,还必须小心处理类型转换中可能出现的错误。泛型能处理这种形式的不足,经由指定一个或多个类型占位符,在处理类型操作时,不用知道具体类型,而将具体类型的指定交由运行时来实现,泛型集合类型使集合能处理多个类型,而又不用重复编码。
      

  20.   

    参考这个精华帖http://topic.csdn.net/u/20090622/21/df7f7b8a-61cd-4c8f-a964-0fe15377523d.html?7885
    里面讲的很好