问题描述
#region泛型的运用publicstaticIList<InfotypeObj>GetAllCustomers(){IList<InfotypeObj>Infotype=newList<InfotypeObj>();using(SqlConnectionconnection=SqlDataProvider.GetSqlConnection()){connection.Open();SqlCommandcommand=newSqlCommand("SELECT[ID],[typeID],[typeTitle],[typeContent],[typeLength]FROM[infoProType]",connection);SqlDataReadersdr=command.ExecuteReader(CommandBehavior.CloseConnection);while(sdr.Read()){//实体类中没有初始化属性的构造函数InfotypeObjm=newInfotypeObj();m.ID=(int)sdr[0];m.TypeID=sdr[1].ToString();m.TypeTitle=sdr[2].ToString();m.TypeContent=sdr[3].ToString();m.TypeLength=(int)sdr[4];Infotype.Add(m);}returnInfotype;}#endregion}
怎么他提示的错误是IList没有ADD的方法呢
解决方案
解决方案二:
IList<InfotypeObj>Infotype=newList<InfotypeObj>();这个地方有问题,ilist好像不能这样new出来的,建议你使用List.List<InfotypeObj>Infotype=newList<InfotypeObj>();上面的IList也全改成ListIlist是接口,不太一样,你可以参考一下msdn:http://www.msdn.net/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemcollectionsilistclasstopic.asp
解决方案三:
原因就是IList的泛型没有Add方法,IList泛型只定义了:IndexOf(T),Insert(int,T),RemoveAt(int)和this[int]这些成员.解决办法:要么用非泛型的IList,要么就用泛型的List。
解决方案四:
回2楼,这句实例化并没有错。只是针对抽象编成而已(依赖倒置),new的还是List并不是IList.
解决方案五:
Add改为Insert就可以了,index参数用当前数目,就相当于Add了,因此还需要一个变量来计数~
解决方案六:
IList是借口,不能直接实现的,List<T>
解决方案七:
谢谢大家的支持哦~