日期:2014-05-19  浏览次数:20456 次

PetShop4.0里的一个例子,谁能解释下,马上结
///   <summary>
                ///   Method   to   get   all   categories(获得所有宠物种类方法)
///   </summary>          
                public   IList <CategoryInfo>   GetCategories()   {

IList <CategoryInfo>   categories   =   new   List <CategoryInfo> ();

                        //Execute   a   query   to   read   the   categories
using(SqlDataReader   rdr   =   SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction,   CommandType.Text,   SQL_SELECT_CATEGORIES,   null))   {
                                while   (rdr.Read())   {
                                        CategoryInfo   cat   =   new   CategoryInfo(rdr.GetString(0),   rdr.GetString(1),   rdr.GetString(2));
                                        categories.Add(cat);
                                }
                        }    
                        return   categories;
                }

在   public   IList <CategoryInfo>   GetCategories()   {   中,   IList <CategoryInfo> 用法不太明白,望大家解释下

------解决方案--------------------
用接口是为了降低耦合度
即使将来改为另外一种集合类,只要仍然实现IList <T> 接口,使用集合的代码不用修改可以继续用
------解决方案--------------------
泛型集合List <CategoryInfo> ,这个List中只能加入CategoryInfo实例。主要是为安全性考虑。
你想如果这个list中加入了其他的数据类型,那在处理的时候不就要出错了吗?