悬赏分:20 浏览:1874 次
【A】 public IList<CategoryInfo> GetCategories() {
return dal.GetCategories();
}
这里的为什么用IList<CategoryInfo>,而不用dataset、或者ArrayList
他们之间有什么区别吗
【B】public CategoryInfo GetCategory(string categoryId) {
// Validate input
if (string.IsNullOrEmpty(categoryId))
return null;
// Use the dal to search by category Id
return dal.GetCategory(categoryId);
}
为什么A用IList而B用CategoryInfo 作为返回类型呢
谢谢
|
A:IList的性能比DataSet 好
B:A和B的功能都不一样,A要返回的是CategoryInfo的集合,B只是跟据categoryId返回CategoryInfo对象 A:用IList<CategoryInfo>而不是DataSet 这样可以分离数据库和领域逻辑 这样业务逻辑的开发人员就可以不考虑数据库的信息了 B:第一个方法返回的是多个对象,而第二个方法则仅仅返回一个对象。 A:IList<T> 与 DataSet 是为了分层比较清楚 ,DataSet一般是返回给数据层使用,而IList<T>是返回给商业层和应用层使用,这样逻辑比较清楚,阅读起来也容易。而ArrayList没有范型支援,只能存储object对象,逻辑上就不太容易阅读了 B:很明显是一个ID只返回一个CategoryInfo对象,用不到存储到集合中去吧! PS:解释的不一定很合理! 我除了在asp里面经常用那时候的ds,写asp.net的程序后就很少用了 不过最近准备看看 找工作的时候会有用的 A IList<> 是泛型,强类型,可以说是.NET2.0中ArrayList的替代方式,性能高,强类型的操作起来也方便 B A中是返回一个CategoryInfo对象集合,而B中只会返回一个CategoryInfo对象 http://msdn.microsoft.com/msdnmag/issues/02/12/CuttingEdge/ http://weblogs.asp.net/paolopia/articles/dsvscustomentities.aspx http://msdn.microsoft.com/msdnmag/issues/04/10/CuttingEdge/ http://msdn.microsoft.com/msdnmag/issues/05/08/CuttingEdge/default.aspx http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx http://blogs.msdn.com/aconrad/archive/2005/03/16/396999.aspx 楼上各位说得都很有道理,这里我就不再赘述了,分享我找到的一些相关的例子,相信能够更好地帮您解决这方面的疑惑。 楼上各位说得很清楚了! 连文章都帮你找出来了! 楼主是在看PetShop4.0吧! 是啊,,petshop4.0,,我也在研究,一直不懂范型...有个问题,为什么类型参数使用了CategoryInfo,但是方法中却没有用到? A:返回一个对象集合,同dataset,dataRead一样,但ilist是.net2.0的一个新特性,不管用什么数据库都可用ilist,一般在业务逻辑层用,供页面调用。(前提要有实体类) B:返回一个对象,一般应该是一个实体类 |
|
10个月前 Anders Cui : 另外,你的问题放错地方了,呵呵 这里是博客园专区 |
|
10个月前 Vincent Luo : Anders Cui chy710 volnet(可以叫我大V)[我需要加强E文学习了]HOHO 回答的都很详细,貌似好象只能选择一个最佳答案 谢谢各位的热心解释 |